----------------------------------------------------------------------------------
-- Company:        Johns Hopkins University
-- Engineer:       Kevin Green
-- 
-- Create Date:    22:56:33 12/02/2011 
-- Design Name:    mask_lut_7
-- Module Name:    mask_lut_7 - RTL 
-- Project Name:   top_gillis_green
-- Target Devices: 
-- Tool versions: 
-- Description:    This is the 7-bit look-up table.  Given a the black and white
--                 vector, current move, and player, an output vector with the 
--                 mask positions is created.  This mask is used to clear the 
--                 opponents positions and set the players positions.
--
-- Dependencies: 
--
-- Revision: 
-- Revision 0.01 - File Created
-- Additional Comments: 
--
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use work.game_logic_pkg.all;

-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--use IEEE.NUMERIC_STD.ALL;

-- Uncomment the following library declaration if instantiating
-- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity mask_lut_7 is
    Port ( black : in  STD_LOGIC_VECTOR (7 downto 0);
           white : in  STD_LOGIC_VECTOR (7 downto 0);
           player : in  STD_LOGIC;
			  move : in STD_LOGIC_VECTOR (7 downto 0);
           data_out : out  STD_LOGIC_VECTOR (7 downto 0));
end mask_lut_7;

architecture RTL of mask_lut_7 is
begin

process(black, white, player, move) is
begin
	case(player & black & white & move) is
		when '0' & x"010204" => data_out <= x"02";
		when '0' & x"010608" => data_out <= x"06";
		when '0' & x"010a04" => data_out <= x"02";
		when '0' & x"010e10" => data_out <= x"0e";
		when '0' & x"011204" => data_out <= x"02";
		when '0' & x"011608" => data_out <= x"06";
		when '0' & x"011a04" => data_out <= x"02";
		when '0' & x"011e20" => data_out <= x"1e";
		when '0' & x"012204" => data_out <= x"02";
		when '0' & x"012608" => data_out <= x"06";
		when '0' & x"012a04" => data_out <= x"02";
		when '0' & x"012e10" => data_out <= x"0e";
		when '0' & x"013204" => data_out <= x"02";
		when '0' & x"013608" => data_out <= x"06";
		when '0' & x"013a04" => data_out <= x"02";
		when '0' & x"013e40" => data_out <= x"3e";
		when '0' & x"014204" => data_out <= x"02";
		when '0' & x"014608" => data_out <= x"06";
		when '0' & x"014a04" => data_out <= x"02";
		when '0' & x"014e10" => data_out <= x"0e";
		when '0' & x"015204" => data_out <= x"02";
		when '0' & x"015608" => data_out <= x"06";
		when '0' & x"015a04" => data_out <= x"02";
		when '0' & x"015e20" => data_out <= x"1e";
		when '0' & x"016204" => data_out <= x"02";
		when '0' & x"016608" => data_out <= x"06";
		when '0' & x"016a04" => data_out <= x"02";
		when '0' & x"016e10" => data_out <= x"0e";
		when '0' & x"017204" => data_out <= x"02";
		when '0' & x"017608" => data_out <= x"06";
		when '0' & x"017a04" => data_out <= x"02";
		when '1' & x"020104" => data_out <= x"02";
		when '0' & x"020408" => data_out <= x"04";
		when '1' & x"020401" => data_out <= x"02";
		when '0' & x"020508" => data_out <= x"04";
		when '1' & x"020904" => data_out <= x"02";
		when '0' & x"020c10" => data_out <= x"0c";
		when '1' & x"020c01" => data_out <= x"02";
		when '0' & x"020d10" => data_out <= x"0c";
		when '1' & x"021104" => data_out <= x"02";
		when '0' & x"021408" => data_out <= x"04";
		when '1' & x"021401" => data_out <= x"02";
		when '0' & x"021508" => data_out <= x"04";
		when '1' & x"021904" => data_out <= x"02";
		when '0' & x"021c20" => data_out <= x"1c";
		when '1' & x"021c01" => data_out <= x"02";
		when '0' & x"021d20" => data_out <= x"1c";
		when '1' & x"022104" => data_out <= x"02";
		when '0' & x"022408" => data_out <= x"04";
		when '1' & x"022401" => data_out <= x"02";
		when '0' & x"022508" => data_out <= x"04";
		when '1' & x"022904" => data_out <= x"02";
		when '0' & x"022c10" => data_out <= x"0c";
		when '1' & x"022c01" => data_out <= x"02";
		when '0' & x"022d10" => data_out <= x"0c";
		when '1' & x"023104" => data_out <= x"02";
		when '0' & x"023408" => data_out <= x"04";
		when '1' & x"023401" => data_out <= x"02";
		when '0' & x"023508" => data_out <= x"04";
		when '1' & x"023904" => data_out <= x"02";
		when '0' & x"023c40" => data_out <= x"3c";
		when '1' & x"023c01" => data_out <= x"02";
		when '0' & x"023d40" => data_out <= x"3c";
		when '1' & x"024104" => data_out <= x"02";
		when '0' & x"024408" => data_out <= x"04";
		when '1' & x"024401" => data_out <= x"02";
		when '0' & x"024508" => data_out <= x"04";
		when '1' & x"024904" => data_out <= x"02";
		when '0' & x"024c10" => data_out <= x"0c";
		when '1' & x"024c01" => data_out <= x"02";
		when '0' & x"024d10" => data_out <= x"0c";
		when '1' & x"025104" => data_out <= x"02";
		when '0' & x"025408" => data_out <= x"04";
		when '1' & x"025401" => data_out <= x"02";
		when '0' & x"025508" => data_out <= x"04";
		when '1' & x"025904" => data_out <= x"02";
		when '0' & x"025c20" => data_out <= x"1c";
		when '1' & x"025c01" => data_out <= x"02";
		when '0' & x"025d20" => data_out <= x"1c";
		when '1' & x"026104" => data_out <= x"02";
		when '0' & x"026408" => data_out <= x"04";
		when '1' & x"026401" => data_out <= x"02";
		when '0' & x"026508" => data_out <= x"04";
		when '1' & x"026904" => data_out <= x"02";
		when '0' & x"026c10" => data_out <= x"0c";
		when '1' & x"026c01" => data_out <= x"02";
		when '0' & x"026d10" => data_out <= x"0c";
		when '1' & x"027104" => data_out <= x"02";
		when '0' & x"027408" => data_out <= x"04";
		when '1' & x"027401" => data_out <= x"02";
		when '0' & x"027508" => data_out <= x"04";
		when '1' & x"027904" => data_out <= x"02";
		when '1' & x"027c01" => data_out <= x"02";
		when '0' & x"030408" => data_out <= x"04";
		when '0' & x"030c10" => data_out <= x"0c";
		when '0' & x"031408" => data_out <= x"04";
		when '0' & x"031c20" => data_out <= x"1c";
		when '0' & x"032408" => data_out <= x"04";
		when '0' & x"032c10" => data_out <= x"0c";
		when '0' & x"033408" => data_out <= x"04";
		when '0' & x"033c40" => data_out <= x"3c";
		when '0' & x"034408" => data_out <= x"04";
		when '0' & x"034c10" => data_out <= x"0c";
		when '0' & x"035408" => data_out <= x"04";
		when '0' & x"035c20" => data_out <= x"1c";
		when '0' & x"036408" => data_out <= x"04";
		when '0' & x"036c10" => data_out <= x"0c";
		when '0' & x"037408" => data_out <= x"04";
		when '0' & x"040201" => data_out <= x"02";
		when '1' & x"040208" => data_out <= x"04";
		when '1' & x"040308" => data_out <= x"04";
		when '0' & x"040810" => data_out <= x"08";
		when '1' & x"040802" => data_out <= x"04";
		when '0' & x"040910" => data_out <= x"08";
		when '1' & x"040902" => data_out <= x"04";
		when '0' & x"040a01" => data_out <= x"02";
		when '0' & x"040a10" => data_out <= x"08";
		when '0' & x"040b10" => data_out <= x"08";
		when '0' & x"041201" => data_out <= x"02";
		when '1' & x"041208" => data_out <= x"04";
		when '1' & x"041308" => data_out <= x"04";
		when '0' & x"041820" => data_out <= x"18";
		when '1' & x"041802" => data_out <= x"04";
		when '0' & x"041920" => data_out <= x"18";
		when '1' & x"041902" => data_out <= x"04";
		when '0' & x"041a01" => data_out <= x"02";
		when '0' & x"041a20" => data_out <= x"18";
		when '0' & x"041b20" => data_out <= x"18";
		when '0' & x"042201" => data_out <= x"02";
		when '1' & x"042208" => data_out <= x"04";
		when '1' & x"042308" => data_out <= x"04";
		when '0' & x"042810" => data_out <= x"08";
		when '1' & x"042802" => data_out <= x"04";
		when '0' & x"042910" => data_out <= x"08";
		when '1' & x"042902" => data_out <= x"04";
		when '0' & x"042a01" => data_out <= x"02";
		when '0' & x"042a10" => data_out <= x"08";
		when '0' & x"042b10" => data_out <= x"08";
		when '0' & x"043201" => data_out <= x"02";
		when '1' & x"043208" => data_out <= x"04";
		when '1' & x"043308" => data_out <= x"04";
		when '0' & x"043840" => data_out <= x"38";
		when '1' & x"043802" => data_out <= x"04";
		when '0' & x"043940" => data_out <= x"38";
		when '1' & x"043902" => data_out <= x"04";
		when '0' & x"043a01" => data_out <= x"02";
		when '0' & x"043a40" => data_out <= x"38";
		when '0' & x"043b40" => data_out <= x"38";
		when '0' & x"044201" => data_out <= x"02";
		when '1' & x"044208" => data_out <= x"04";
		when '1' & x"044308" => data_out <= x"04";
		when '0' & x"044810" => data_out <= x"08";
		when '1' & x"044802" => data_out <= x"04";
		when '0' & x"044910" => data_out <= x"08";
		when '1' & x"044902" => data_out <= x"04";
		when '0' & x"044a01" => data_out <= x"02";
		when '0' & x"044a10" => data_out <= x"08";
		when '0' & x"044b10" => data_out <= x"08";
		when '0' & x"045201" => data_out <= x"02";
		when '1' & x"045208" => data_out <= x"04";
		when '1' & x"045308" => data_out <= x"04";
		when '0' & x"045820" => data_out <= x"18";
		when '1' & x"045802" => data_out <= x"04";
		when '0' & x"045920" => data_out <= x"18";
		when '1' & x"045902" => data_out <= x"04";
		when '0' & x"045a01" => data_out <= x"02";
		when '0' & x"045a20" => data_out <= x"18";
		when '0' & x"045b20" => data_out <= x"18";
		when '0' & x"046201" => data_out <= x"02";
		when '1' & x"046208" => data_out <= x"04";
		when '1' & x"046308" => data_out <= x"04";
		when '0' & x"046810" => data_out <= x"08";
		when '1' & x"046802" => data_out <= x"04";
		when '0' & x"046910" => data_out <= x"08";
		when '1' & x"046902" => data_out <= x"04";
		when '0' & x"046a01" => data_out <= x"02";
		when '0' & x"046a10" => data_out <= x"08";
		when '0' & x"046b10" => data_out <= x"08";
		when '0' & x"047201" => data_out <= x"02";
		when '1' & x"047208" => data_out <= x"04";
		when '1' & x"047308" => data_out <= x"04";
		when '1' & x"047802" => data_out <= x"04";
		when '1' & x"047902" => data_out <= x"04";
		when '0' & x"047a01" => data_out <= x"02";
		when '1' & x"050208" => data_out <= x"04";
		when '0' & x"050810" => data_out <= x"08";
		when '1' & x"050802" => data_out <= x"04";
		when '0' & x"050a10" => data_out <= x"08";
		when '1' & x"051208" => data_out <= x"04";
		when '0' & x"051820" => data_out <= x"18";
		when '1' & x"051802" => data_out <= x"04";
		when '0' & x"051a20" => data_out <= x"18";
		when '1' & x"052208" => data_out <= x"04";
		when '0' & x"052810" => data_out <= x"08";
		when '1' & x"052802" => data_out <= x"04";
		when '0' & x"052a10" => data_out <= x"08";
		when '1' & x"053208" => data_out <= x"04";
		when '0' & x"053840" => data_out <= x"38";
		when '1' & x"053802" => data_out <= x"04";
		when '0' & x"053a40" => data_out <= x"38";
		when '1' & x"054208" => data_out <= x"04";
		when '0' & x"054810" => data_out <= x"08";
		when '1' & x"054802" => data_out <= x"04";
		when '0' & x"054a10" => data_out <= x"08";
		when '1' & x"055208" => data_out <= x"04";
		when '0' & x"055820" => data_out <= x"18";
		when '1' & x"055802" => data_out <= x"04";
		when '0' & x"055a20" => data_out <= x"18";
		when '1' & x"056208" => data_out <= x"04";
		when '0' & x"056810" => data_out <= x"08";
		when '1' & x"056802" => data_out <= x"04";
		when '0' & x"056a10" => data_out <= x"08";
		when '1' & x"057208" => data_out <= x"04";
		when '1' & x"057802" => data_out <= x"04";
		when '1' & x"060108" => data_out <= x"06";
		when '0' & x"060810" => data_out <= x"08";
		when '1' & x"060801" => data_out <= x"06";
		when '0' & x"060910" => data_out <= x"08";
		when '1' & x"061108" => data_out <= x"06";
		when '0' & x"061820" => data_out <= x"18";
		when '1' & x"061801" => data_out <= x"06";
		when '0' & x"061920" => data_out <= x"18";
		when '1' & x"062108" => data_out <= x"06";
		when '0' & x"062810" => data_out <= x"08";
		when '1' & x"062801" => data_out <= x"06";
		when '0' & x"062910" => data_out <= x"08";
		when '1' & x"063108" => data_out <= x"06";
		when '0' & x"063840" => data_out <= x"38";
		when '1' & x"063801" => data_out <= x"06";
		when '0' & x"063940" => data_out <= x"38";
		when '1' & x"064108" => data_out <= x"06";
		when '0' & x"064810" => data_out <= x"08";
		when '1' & x"064801" => data_out <= x"06";
		when '0' & x"064910" => data_out <= x"08";
		when '1' & x"065108" => data_out <= x"06";
		when '0' & x"065820" => data_out <= x"18";
		when '1' & x"065801" => data_out <= x"06";
		when '0' & x"065920" => data_out <= x"18";
		when '1' & x"066108" => data_out <= x"06";
		when '0' & x"066810" => data_out <= x"08";
		when '1' & x"066801" => data_out <= x"06";
		when '0' & x"066910" => data_out <= x"08";
		when '1' & x"067108" => data_out <= x"06";
		when '1' & x"067801" => data_out <= x"06";
		when '0' & x"070810" => data_out <= x"08";
		when '0' & x"071820" => data_out <= x"18";
		when '0' & x"072810" => data_out <= x"08";
		when '0' & x"073840" => data_out <= x"38";
		when '0' & x"074810" => data_out <= x"08";
		when '0' & x"075820" => data_out <= x"18";
		when '0' & x"076810" => data_out <= x"08";
		when '0' & x"080402" => data_out <= x"04";
		when '1' & x"080410" => data_out <= x"08";
		when '0' & x"080502" => data_out <= x"04";
		when '1' & x"080510" => data_out <= x"08";
		when '0' & x"080601" => data_out <= x"06";
		when '1' & x"080610" => data_out <= x"08";
		when '1' & x"080710" => data_out <= x"08";
		when '0' & x"081020" => data_out <= x"10";
		when '1' & x"081004" => data_out <= x"08";
		when '0' & x"081120" => data_out <= x"10";
		when '1' & x"081104" => data_out <= x"08";
		when '0' & x"081220" => data_out <= x"10";
		when '1' & x"081204" => data_out <= x"08";
		when '0' & x"081320" => data_out <= x"10";
		when '1' & x"081304" => data_out <= x"08";
		when '0' & x"081402" => data_out <= x"04";
		when '0' & x"081420" => data_out <= x"10";
		when '0' & x"081502" => data_out <= x"04";
		when '0' & x"081520" => data_out <= x"10";
		when '0' & x"081601" => data_out <= x"06";
		when '0' & x"081620" => data_out <= x"10";
		when '0' & x"081720" => data_out <= x"10";
		when '0' & x"082402" => data_out <= x"04";
		when '1' & x"082410" => data_out <= x"08";
		when '0' & x"082502" => data_out <= x"04";
		when '1' & x"082510" => data_out <= x"08";
		when '0' & x"082601" => data_out <= x"06";
		when '1' & x"082610" => data_out <= x"08";
		when '1' & x"082710" => data_out <= x"08";
		when '0' & x"083040" => data_out <= x"30";
		when '1' & x"083004" => data_out <= x"08";
		when '0' & x"083140" => data_out <= x"30";
		when '1' & x"083104" => data_out <= x"08";
		when '0' & x"083240" => data_out <= x"30";
		when '1' & x"083204" => data_out <= x"08";
		when '0' & x"083340" => data_out <= x"30";
		when '1' & x"083304" => data_out <= x"08";
		when '0' & x"083402" => data_out <= x"04";
		when '0' & x"083440" => data_out <= x"30";
		when '0' & x"083502" => data_out <= x"04";
		when '0' & x"083540" => data_out <= x"30";
		when '0' & x"083601" => data_out <= x"06";
		when '0' & x"083640" => data_out <= x"30";
		when '0' & x"083740" => data_out <= x"30";
		when '0' & x"084402" => data_out <= x"04";
		when '1' & x"084410" => data_out <= x"08";
		when '0' & x"084502" => data_out <= x"04";
		when '1' & x"084510" => data_out <= x"08";
		when '0' & x"084601" => data_out <= x"06";
		when '1' & x"084610" => data_out <= x"08";
		when '1' & x"084710" => data_out <= x"08";
		when '0' & x"085020" => data_out <= x"10";
		when '1' & x"085004" => data_out <= x"08";
		when '0' & x"085120" => data_out <= x"10";
		when '1' & x"085104" => data_out <= x"08";
		when '0' & x"085220" => data_out <= x"10";
		when '1' & x"085204" => data_out <= x"08";
		when '0' & x"085320" => data_out <= x"10";
		when '1' & x"085304" => data_out <= x"08";
		when '0' & x"085402" => data_out <= x"04";
		when '0' & x"085420" => data_out <= x"10";
		when '0' & x"085502" => data_out <= x"04";
		when '0' & x"085520" => data_out <= x"10";
		when '0' & x"085601" => data_out <= x"06";
		when '0' & x"085620" => data_out <= x"10";
		when '0' & x"085720" => data_out <= x"10";
		when '0' & x"086402" => data_out <= x"04";
		when '1' & x"086410" => data_out <= x"08";
		when '0' & x"086502" => data_out <= x"04";
		when '1' & x"086510" => data_out <= x"08";
		when '0' & x"086601" => data_out <= x"06";
		when '1' & x"086610" => data_out <= x"08";
		when '1' & x"086710" => data_out <= x"08";
		when '1' & x"087004" => data_out <= x"08";
		when '1' & x"087104" => data_out <= x"08";
		when '1' & x"087204" => data_out <= x"08";
		when '1' & x"087304" => data_out <= x"08";
		when '0' & x"087402" => data_out <= x"04";
		when '0' & x"087502" => data_out <= x"04";
		when '0' & x"087601" => data_out <= x"06";
		when '0' & x"090204" => data_out <= x"02";
		when '0' & x"090402" => data_out <= x"04";
		when '1' & x"090410" => data_out <= x"08";
		when '1' & x"090610" => data_out <= x"08";
		when '0' & x"091020" => data_out <= x"10";
		when '1' & x"091004" => data_out <= x"08";
		when '0' & x"091204" => data_out <= x"02";
		when '0' & x"091220" => data_out <= x"10";
		when '1' & x"091204" => data_out <= x"08";
		when '0' & x"091402" => data_out <= x"04";
		when '0' & x"091420" => data_out <= x"10";
		when '0' & x"091620" => data_out <= x"10";
		when '0' & x"092204" => data_out <= x"02";
		when '0' & x"092402" => data_out <= x"04";
		when '1' & x"092410" => data_out <= x"08";
		when '1' & x"092610" => data_out <= x"08";
		when '0' & x"093040" => data_out <= x"30";
		when '1' & x"093004" => data_out <= x"08";
		when '0' & x"093204" => data_out <= x"02";
		when '0' & x"093240" => data_out <= x"30";
		when '1' & x"093204" => data_out <= x"08";
		when '0' & x"093402" => data_out <= x"04";
		when '0' & x"093440" => data_out <= x"30";
		when '0' & x"093640" => data_out <= x"30";
		when '0' & x"094204" => data_out <= x"02";
		when '0' & x"094402" => data_out <= x"04";
		when '1' & x"094410" => data_out <= x"08";
		when '1' & x"094610" => data_out <= x"08";
		when '0' & x"095020" => data_out <= x"10";
		when '1' & x"095004" => data_out <= x"08";
		when '0' & x"095204" => data_out <= x"02";
		when '0' & x"095220" => data_out <= x"10";
		when '1' & x"095204" => data_out <= x"08";
		when '0' & x"095402" => data_out <= x"04";
		when '0' & x"095420" => data_out <= x"10";
		when '0' & x"095620" => data_out <= x"10";
		when '0' & x"096204" => data_out <= x"02";
		when '0' & x"096402" => data_out <= x"04";
		when '1' & x"096410" => data_out <= x"08";
		when '1' & x"096610" => data_out <= x"08";
		when '1' & x"097004" => data_out <= x"08";
		when '0' & x"097204" => data_out <= x"02";
		when '1' & x"097204" => data_out <= x"08";
		when '0' & x"097402" => data_out <= x"04";
		when '1' & x"0a0104" => data_out <= x"02";
		when '1' & x"0a0401" => data_out <= x"02";
		when '1' & x"0a0410" => data_out <= x"08";
		when '1' & x"0a0510" => data_out <= x"08";
		when '0' & x"0a1020" => data_out <= x"10";
		when '1' & x"0a1004" => data_out <= x"08";
		when '0' & x"0a1120" => data_out <= x"10";
		when '1' & x"0a1104" => data_out <= x"0a";
		when '0' & x"0a1420" => data_out <= x"10";
		when '1' & x"0a1401" => data_out <= x"02";
		when '0' & x"0a1520" => data_out <= x"10";
		when '1' & x"0a2104" => data_out <= x"02";
		when '1' & x"0a2401" => data_out <= x"02";
		when '1' & x"0a2410" => data_out <= x"08";
		when '1' & x"0a2510" => data_out <= x"08";
		when '0' & x"0a3040" => data_out <= x"30";
		when '1' & x"0a3004" => data_out <= x"08";
		when '0' & x"0a3140" => data_out <= x"30";
		when '1' & x"0a3104" => data_out <= x"0a";
		when '0' & x"0a3440" => data_out <= x"30";
		when '1' & x"0a3401" => data_out <= x"02";
		when '0' & x"0a3540" => data_out <= x"30";
		when '1' & x"0a4104" => data_out <= x"02";
		when '1' & x"0a4401" => data_out <= x"02";
		when '1' & x"0a4410" => data_out <= x"08";
		when '1' & x"0a4510" => data_out <= x"08";
		when '0' & x"0a5020" => data_out <= x"10";
		when '1' & x"0a5004" => data_out <= x"08";
		when '0' & x"0a5120" => data_out <= x"10";
		when '1' & x"0a5104" => data_out <= x"0a";
		when '0' & x"0a5420" => data_out <= x"10";
		when '1' & x"0a5401" => data_out <= x"02";
		when '0' & x"0a5520" => data_out <= x"10";
		when '1' & x"0a6104" => data_out <= x"02";
		when '1' & x"0a6401" => data_out <= x"02";
		when '1' & x"0a6410" => data_out <= x"08";
		when '1' & x"0a6510" => data_out <= x"08";
		when '1' & x"0a7004" => data_out <= x"08";
		when '1' & x"0a7104" => data_out <= x"0a";
		when '1' & x"0a7401" => data_out <= x"02";
		when '1' & x"0b0410" => data_out <= x"08";
		when '0' & x"0b1020" => data_out <= x"10";
		when '1' & x"0b1004" => data_out <= x"08";
		when '0' & x"0b1420" => data_out <= x"10";
		when '1' & x"0b2410" => data_out <= x"08";
		when '0' & x"0b3040" => data_out <= x"30";
		when '1' & x"0b3004" => data_out <= x"08";
		when '0' & x"0b3440" => data_out <= x"30";
		when '1' & x"0b4410" => data_out <= x"08";
		when '0' & x"0b5020" => data_out <= x"10";
		when '1' & x"0b5004" => data_out <= x"08";
		when '0' & x"0b5420" => data_out <= x"10";
		when '1' & x"0b6410" => data_out <= x"08";
		when '1' & x"0b7004" => data_out <= x"08";
		when '0' & x"0c0201" => data_out <= x"02";
		when '1' & x"0c0210" => data_out <= x"0c";
		when '1' & x"0c0310" => data_out <= x"0c";
		when '0' & x"0c1020" => data_out <= x"10";
		when '1' & x"0c1002" => data_out <= x"0c";
		when '0' & x"0c1120" => data_out <= x"10";
		when '1' & x"0c1102" => data_out <= x"0c";
		when '0' & x"0c1201" => data_out <= x"02";
		when '0' & x"0c1220" => data_out <= x"10";
		when '0' & x"0c1320" => data_out <= x"10";
		when '0' & x"0c2201" => data_out <= x"02";
		when '1' & x"0c2210" => data_out <= x"0c";
		when '1' & x"0c2310" => data_out <= x"0c";
		when '0' & x"0c3040" => data_out <= x"30";
		when '1' & x"0c3002" => data_out <= x"0c";
		when '0' & x"0c3140" => data_out <= x"30";
		when '1' & x"0c3102" => data_out <= x"0c";
		when '0' & x"0c3201" => data_out <= x"02";
		when '0' & x"0c3240" => data_out <= x"30";
		when '0' & x"0c3340" => data_out <= x"30";
		when '0' & x"0c4201" => data_out <= x"02";
		when '1' & x"0c4210" => data_out <= x"0c";
		when '1' & x"0c4310" => data_out <= x"0c";
		when '0' & x"0c5020" => data_out <= x"10";
		when '1' & x"0c5002" => data_out <= x"0c";
		when '0' & x"0c5120" => data_out <= x"10";
		when '1' & x"0c5102" => data_out <= x"0c";
		when '0' & x"0c5201" => data_out <= x"02";
		when '0' & x"0c5220" => data_out <= x"10";
		when '0' & x"0c5320" => data_out <= x"10";
		when '0' & x"0c6201" => data_out <= x"02";
		when '1' & x"0c6210" => data_out <= x"0c";
		when '1' & x"0c6310" => data_out <= x"0c";
		when '1' & x"0c7002" => data_out <= x"0c";
		when '1' & x"0c7102" => data_out <= x"0c";
		when '0' & x"0c7201" => data_out <= x"02";
		when '1' & x"0d0210" => data_out <= x"0c";
		when '0' & x"0d1020" => data_out <= x"10";
		when '1' & x"0d1002" => data_out <= x"0c";
		when '0' & x"0d1220" => data_out <= x"10";
		when '1' & x"0d2210" => data_out <= x"0c";
		when '0' & x"0d3040" => data_out <= x"30";
		when '1' & x"0d3002" => data_out <= x"0c";
		when '0' & x"0d3240" => data_out <= x"30";
		when '1' & x"0d4210" => data_out <= x"0c";
		when '0' & x"0d5020" => data_out <= x"10";
		when '1' & x"0d5002" => data_out <= x"0c";
		when '0' & x"0d5220" => data_out <= x"10";
		when '1' & x"0d6210" => data_out <= x"0c";
		when '1' & x"0d7002" => data_out <= x"0c";
		when '1' & x"0e0110" => data_out <= x"0e";
		when '0' & x"0e1020" => data_out <= x"10";
		when '1' & x"0e1001" => data_out <= x"0e";
		when '0' & x"0e1120" => data_out <= x"10";
		when '1' & x"0e2110" => data_out <= x"0e";
		when '0' & x"0e3040" => data_out <= x"30";
		when '1' & x"0e3001" => data_out <= x"0e";
		when '0' & x"0e3140" => data_out <= x"30";
		when '1' & x"0e4110" => data_out <= x"0e";
		when '0' & x"0e5020" => data_out <= x"10";
		when '1' & x"0e5001" => data_out <= x"0e";
		when '0' & x"0e5120" => data_out <= x"10";
		when '1' & x"0e6110" => data_out <= x"0e";
		when '1' & x"0e7001" => data_out <= x"0e";
		when '0' & x"0f1020" => data_out <= x"10";
		when '0' & x"0f3040" => data_out <= x"30";
		when '0' & x"0f5020" => data_out <= x"10";
		when '0' & x"100804" => data_out <= x"08";
		when '1' & x"100820" => data_out <= x"10";
		when '0' & x"100904" => data_out <= x"08";
		when '1' & x"100920" => data_out <= x"10";
		when '0' & x"100a04" => data_out <= x"08";
		when '1' & x"100a20" => data_out <= x"10";
		when '0' & x"100b04" => data_out <= x"08";
		when '1' & x"100b20" => data_out <= x"10";
		when '0' & x"100c02" => data_out <= x"0c";
		when '1' & x"100c20" => data_out <= x"10";
		when '0' & x"100d02" => data_out <= x"0c";
		when '1' & x"100d20" => data_out <= x"10";
		when '0' & x"100e01" => data_out <= x"0e";
		when '1' & x"100e20" => data_out <= x"10";
		when '1' & x"100f20" => data_out <= x"10";
		when '0' & x"102040" => data_out <= x"20";
		when '1' & x"102008" => data_out <= x"10";
		when '0' & x"102140" => data_out <= x"20";
		when '1' & x"102108" => data_out <= x"10";
		when '0' & x"102240" => data_out <= x"20";
		when '1' & x"102208" => data_out <= x"10";
		when '0' & x"102340" => data_out <= x"20";
		when '1' & x"102308" => data_out <= x"10";
		when '0' & x"102440" => data_out <= x"20";
		when '1' & x"102408" => data_out <= x"10";
		when '0' & x"102540" => data_out <= x"20";
		when '1' & x"102508" => data_out <= x"10";
		when '0' & x"102640" => data_out <= x"20";
		when '1' & x"102608" => data_out <= x"10";
		when '0' & x"102740" => data_out <= x"20";
		when '1' & x"102708" => data_out <= x"10";
		when '0' & x"102804" => data_out <= x"08";
		when '0' & x"102840" => data_out <= x"20";
		when '0' & x"102904" => data_out <= x"08";
		when '0' & x"102940" => data_out <= x"20";
		when '0' & x"102a04" => data_out <= x"08";
		when '0' & x"102a40" => data_out <= x"20";
		when '0' & x"102b04" => data_out <= x"08";
		when '0' & x"102b40" => data_out <= x"20";
		when '0' & x"102c02" => data_out <= x"0c";
		when '0' & x"102c40" => data_out <= x"20";
		when '0' & x"102d02" => data_out <= x"0c";
		when '0' & x"102d40" => data_out <= x"20";
		when '0' & x"102e01" => data_out <= x"0e";
		when '0' & x"102e40" => data_out <= x"20";
		when '0' & x"102f40" => data_out <= x"20";
		when '0' & x"104804" => data_out <= x"08";
		when '1' & x"104820" => data_out <= x"10";
		when '0' & x"104904" => data_out <= x"08";
		when '1' & x"104920" => data_out <= x"10";
		when '0' & x"104a04" => data_out <= x"08";
		when '1' & x"104a20" => data_out <= x"10";
		when '0' & x"104b04" => data_out <= x"08";
		when '1' & x"104b20" => data_out <= x"10";
		when '0' & x"104c02" => data_out <= x"0c";
		when '1' & x"104c20" => data_out <= x"10";
		when '0' & x"104d02" => data_out <= x"0c";
		when '1' & x"104d20" => data_out <= x"10";
		when '0' & x"104e01" => data_out <= x"0e";
		when '1' & x"104e20" => data_out <= x"10";
		when '1' & x"104f20" => data_out <= x"10";
		when '1' & x"106008" => data_out <= x"10";
		when '1' & x"106108" => data_out <= x"10";
		when '1' & x"106208" => data_out <= x"10";
		when '1' & x"106308" => data_out <= x"10";
		when '1' & x"106408" => data_out <= x"10";
		when '1' & x"106508" => data_out <= x"10";
		when '1' & x"106608" => data_out <= x"10";
		when '1' & x"106708" => data_out <= x"10";
		when '0' & x"106804" => data_out <= x"08";
		when '0' & x"106904" => data_out <= x"08";
		when '0' & x"106a04" => data_out <= x"08";
		when '0' & x"106b04" => data_out <= x"08";
		when '0' & x"106c02" => data_out <= x"0c";
		when '0' & x"106d02" => data_out <= x"0c";
		when '0' & x"106e01" => data_out <= x"0e";
		when '0' & x"110204" => data_out <= x"02";
		when '0' & x"110608" => data_out <= x"06";
		when '0' & x"110804" => data_out <= x"08";
		when '1' & x"110820" => data_out <= x"10";
		when '0' & x"110a04" => data_out <= x"0a";
		when '1' & x"110a20" => data_out <= x"10";
		when '0' & x"110c02" => data_out <= x"0c";
		when '1' & x"110c20" => data_out <= x"10";
		when '1' & x"110e20" => data_out <= x"10";
		when '0' & x"112040" => data_out <= x"20";
		when '1' & x"112008" => data_out <= x"10";
		when '0' & x"112204" => data_out <= x"02";
		when '0' & x"112240" => data_out <= x"20";
		when '1' & x"112208" => data_out <= x"10";
		when '0' & x"112440" => data_out <= x"20";
		when '1' & x"112408" => data_out <= x"10";
		when '0' & x"112608" => data_out <= x"06";
		when '0' & x"112640" => data_out <= x"20";
		when '1' & x"112608" => data_out <= x"10";
		when '0' & x"112804" => data_out <= x"08";
		when '0' & x"112840" => data_out <= x"20";
		when '0' & x"112a04" => data_out <= x"0a";
		when '0' & x"112a40" => data_out <= x"20";
		when '0' & x"112c02" => data_out <= x"0c";
		when '0' & x"112c40" => data_out <= x"20";
		when '0' & x"112e40" => data_out <= x"20";
		when '0' & x"114204" => data_out <= x"02";
		when '0' & x"114608" => data_out <= x"06";
		when '0' & x"114804" => data_out <= x"08";
		when '1' & x"114820" => data_out <= x"10";
		when '0' & x"114a04" => data_out <= x"0a";
		when '1' & x"114a20" => data_out <= x"10";
		when '0' & x"114c02" => data_out <= x"0c";
		when '1' & x"114c20" => data_out <= x"10";
		when '1' & x"114e20" => data_out <= x"10";
		when '1' & x"116008" => data_out <= x"10";
		when '0' & x"116204" => data_out <= x"02";
		when '1' & x"116208" => data_out <= x"10";
		when '1' & x"116408" => data_out <= x"10";
		when '0' & x"116608" => data_out <= x"06";
		when '1' & x"116608" => data_out <= x"10";
		when '0' & x"116804" => data_out <= x"08";
		when '0' & x"116a04" => data_out <= x"0a";
		when '0' & x"116c02" => data_out <= x"0c";
		when '1' & x"120104" => data_out <= x"02";
		when '0' & x"120408" => data_out <= x"04";
		when '1' & x"120401" => data_out <= x"02";
		when '0' & x"120508" => data_out <= x"04";
		when '0' & x"120804" => data_out <= x"08";
		when '1' & x"120820" => data_out <= x"10";
		when '0' & x"120904" => data_out <= x"08";
		when '1' & x"120904" => data_out <= x"02";
		when '1' & x"120920" => data_out <= x"10";
		when '1' & x"120c01" => data_out <= x"02";
		when '1' & x"120c20" => data_out <= x"10";
		when '1' & x"120d20" => data_out <= x"10";
		when '0' & x"122040" => data_out <= x"20";
		when '1' & x"122008" => data_out <= x"10";
		when '0' & x"122140" => data_out <= x"20";
		when '1' & x"122104" => data_out <= x"02";
		when '1' & x"122108" => data_out <= x"10";
		when '0' & x"122408" => data_out <= x"04";
		when '0' & x"122440" => data_out <= x"20";
		when '1' & x"122401" => data_out <= x"02";
		when '1' & x"122408" => data_out <= x"10";
		when '0' & x"122508" => data_out <= x"04";
		when '0' & x"122540" => data_out <= x"20";
		when '1' & x"122508" => data_out <= x"10";
		when '0' & x"122804" => data_out <= x"08";
		when '0' & x"122840" => data_out <= x"20";
		when '0' & x"122904" => data_out <= x"08";
		when '0' & x"122940" => data_out <= x"20";
		when '1' & x"122904" => data_out <= x"02";
		when '0' & x"122c40" => data_out <= x"20";
		when '1' & x"122c01" => data_out <= x"02";
		when '0' & x"122d40" => data_out <= x"20";
		when '1' & x"124104" => data_out <= x"02";
		when '0' & x"124408" => data_out <= x"04";
		when '1' & x"124401" => data_out <= x"02";
		when '0' & x"124508" => data_out <= x"04";
		when '0' & x"124804" => data_out <= x"08";
		when '1' & x"124820" => data_out <= x"10";
		when '0' & x"124904" => data_out <= x"08";
		when '1' & x"124904" => data_out <= x"02";
		when '1' & x"124920" => data_out <= x"10";
		when '1' & x"124c01" => data_out <= x"02";
		when '1' & x"124c20" => data_out <= x"10";
		when '1' & x"124d20" => data_out <= x"10";
		when '1' & x"126008" => data_out <= x"10";
		when '1' & x"126104" => data_out <= x"02";
		when '1' & x"126108" => data_out <= x"10";
		when '0' & x"126408" => data_out <= x"04";
		when '1' & x"126401" => data_out <= x"02";
		when '1' & x"126408" => data_out <= x"10";
		when '0' & x"126508" => data_out <= x"04";
		when '1' & x"126508" => data_out <= x"10";
		when '0' & x"126804" => data_out <= x"08";
		when '0' & x"126904" => data_out <= x"08";
		when '1' & x"126904" => data_out <= x"02";
		when '1' & x"126c01" => data_out <= x"02";
		when '0' & x"130408" => data_out <= x"04";
		when '0' & x"130804" => data_out <= x"08";
		when '1' & x"130820" => data_out <= x"10";
		when '1' & x"130c20" => data_out <= x"10";
		when '0' & x"132040" => data_out <= x"20";
		when '1' & x"132008" => data_out <= x"10";
		when '0' & x"132408" => data_out <= x"04";
		when '0' & x"132440" => data_out <= x"20";
		when '1' & x"132408" => data_out <= x"10";
		when '0' & x"132804" => data_out <= x"08";
		when '0' & x"132840" => data_out <= x"20";
		when '0' & x"132c40" => data_out <= x"20";
		when '0' & x"134408" => data_out <= x"04";
		when '0' & x"134804" => data_out <= x"08";
		when '1' & x"134820" => data_out <= x"10";
		when '1' & x"134c20" => data_out <= x"10";
		when '1' & x"136008" => data_out <= x"10";
		when '0' & x"136408" => data_out <= x"04";
		when '1' & x"136408" => data_out <= x"10";
		when '0' & x"136804" => data_out <= x"08";
		when '0' & x"140201" => data_out <= x"02";
		when '1' & x"140208" => data_out <= x"04";
		when '1' & x"140308" => data_out <= x"04";
		when '1' & x"140802" => data_out <= x"04";
		when '1' & x"140820" => data_out <= x"10";
		when '1' & x"140902" => data_out <= x"04";
		when '1' & x"140920" => data_out <= x"10";
		when '0' & x"140a01" => data_out <= x"02";
		when '1' & x"140a20" => data_out <= x"10";
		when '1' & x"140b20" => data_out <= x"10";
		when '0' & x"142040" => data_out <= x"20";
		when '1' & x"142008" => data_out <= x"10";
		when '0' & x"142140" => data_out <= x"20";
		when '1' & x"142108" => data_out <= x"10";
		when '0' & x"142201" => data_out <= x"02";
		when '0' & x"142240" => data_out <= x"20";
		when '1' & x"142208" => data_out <= x"14";
		when '0' & x"142340" => data_out <= x"20";
		when '1' & x"142308" => data_out <= x"14";
		when '0' & x"142840" => data_out <= x"20";
		when '1' & x"142802" => data_out <= x"04";
		when '0' & x"142940" => data_out <= x"20";
		when '1' & x"142902" => data_out <= x"04";
		when '0' & x"142a01" => data_out <= x"02";
		when '0' & x"142a40" => data_out <= x"20";
		when '0' & x"142b40" => data_out <= x"20";
		when '0' & x"144201" => data_out <= x"02";
		when '1' & x"144208" => data_out <= x"04";
		when '1' & x"144308" => data_out <= x"04";
		when '1' & x"144802" => data_out <= x"04";
		when '1' & x"144820" => data_out <= x"10";
		when '1' & x"144902" => data_out <= x"04";
		when '1' & x"144920" => data_out <= x"10";
		when '0' & x"144a01" => data_out <= x"02";
		when '1' & x"144a20" => data_out <= x"10";
		when '1' & x"144b20" => data_out <= x"10";
		when '1' & x"146008" => data_out <= x"10";
		when '1' & x"146108" => data_out <= x"10";
		when '0' & x"146201" => data_out <= x"02";
		when '1' & x"146208" => data_out <= x"14";
		when '1' & x"146308" => data_out <= x"14";
		when '1' & x"146802" => data_out <= x"04";
		when '1' & x"146902" => data_out <= x"04";
		when '0' & x"146a01" => data_out <= x"02";
		when '1' & x"150208" => data_out <= x"04";
		when '1' & x"150802" => data_out <= x"04";
		when '1' & x"150820" => data_out <= x"10";
		when '1' & x"150a20" => data_out <= x"10";
		when '0' & x"152040" => data_out <= x"20";
		when '1' & x"152008" => data_out <= x"10";
		when '0' & x"152240" => data_out <= x"20";
		when '1' & x"152208" => data_out <= x"14";
		when '0' & x"152840" => data_out <= x"20";
		when '1' & x"152802" => data_out <= x"04";
		when '0' & x"152a40" => data_out <= x"20";
		when '1' & x"154208" => data_out <= x"04";
		when '1' & x"154802" => data_out <= x"04";
		when '1' & x"154820" => data_out <= x"10";
		when '1' & x"154a20" => data_out <= x"10";
		when '1' & x"156008" => data_out <= x"10";
		when '1' & x"156208" => data_out <= x"14";
		when '1' & x"156802" => data_out <= x"04";
		when '1' & x"160108" => data_out <= x"06";
		when '1' & x"160801" => data_out <= x"06";
		when '1' & x"160820" => data_out <= x"10";
		when '1' & x"160920" => data_out <= x"10";
		when '0' & x"162040" => data_out <= x"20";
		when '1' & x"162008" => data_out <= x"10";
		when '0' & x"162140" => data_out <= x"20";
		when '1' & x"162108" => data_out <= x"16";
		when '0' & x"162840" => data_out <= x"20";
		when '1' & x"162801" => data_out <= x"06";
		when '0' & x"162940" => data_out <= x"20";
		when '1' & x"164108" => data_out <= x"06";
		when '1' & x"164801" => data_out <= x"06";
		when '1' & x"164820" => data_out <= x"10";
		when '1' & x"164920" => data_out <= x"10";
		when '1' & x"166008" => data_out <= x"10";
		when '1' & x"166108" => data_out <= x"16";
		when '1' & x"166801" => data_out <= x"06";
		when '1' & x"170820" => data_out <= x"10";
		when '0' & x"172040" => data_out <= x"20";
		when '1' & x"172008" => data_out <= x"10";
		when '0' & x"172840" => data_out <= x"20";
		when '1' & x"174820" => data_out <= x"10";
		when '1' & x"176008" => data_out <= x"10";
		when '0' & x"180402" => data_out <= x"04";
		when '1' & x"180420" => data_out <= x"18";
		when '0' & x"180502" => data_out <= x"04";
		when '1' & x"180520" => data_out <= x"18";
		when '0' & x"180601" => data_out <= x"06";
		when '1' & x"180620" => data_out <= x"18";
		when '1' & x"180720" => data_out <= x"18";
		when '0' & x"182040" => data_out <= x"20";
		when '1' & x"182004" => data_out <= x"18";
		when '0' & x"182140" => data_out <= x"20";
		when '1' & x"182104" => data_out <= x"18";
		when '0' & x"182240" => data_out <= x"20";
		when '1' & x"182204" => data_out <= x"18";
		when '0' & x"182340" => data_out <= x"20";
		when '1' & x"182304" => data_out <= x"18";
		when '0' & x"182402" => data_out <= x"04";
		when '0' & x"182440" => data_out <= x"20";
		when '0' & x"182502" => data_out <= x"04";
		when '0' & x"182540" => data_out <= x"20";
		when '0' & x"182601" => data_out <= x"06";
		when '0' & x"182640" => data_out <= x"20";
		when '0' & x"182740" => data_out <= x"20";
		when '0' & x"184402" => data_out <= x"04";
		when '1' & x"184420" => data_out <= x"18";
		when '0' & x"184502" => data_out <= x"04";
		when '1' & x"184520" => data_out <= x"18";
		when '0' & x"184601" => data_out <= x"06";
		when '1' & x"184620" => data_out <= x"18";
		when '1' & x"184720" => data_out <= x"18";
		when '1' & x"186004" => data_out <= x"18";
		when '1' & x"186104" => data_out <= x"18";
		when '1' & x"186204" => data_out <= x"18";
		when '1' & x"186304" => data_out <= x"18";
		when '0' & x"186402" => data_out <= x"04";
		when '0' & x"186502" => data_out <= x"04";
		when '0' & x"186601" => data_out <= x"06";
		when '0' & x"190204" => data_out <= x"02";
		when '0' & x"190402" => data_out <= x"04";
		when '1' & x"190420" => data_out <= x"18";
		when '1' & x"190620" => data_out <= x"18";
		when '0' & x"192040" => data_out <= x"20";
		when '1' & x"192004" => data_out <= x"18";
		when '0' & x"192204" => data_out <= x"02";
		when '0' & x"192240" => data_out <= x"20";
		when '1' & x"192204" => data_out <= x"18";
		when '0' & x"192402" => data_out <= x"04";
		when '0' & x"192440" => data_out <= x"20";
		when '0' & x"192640" => data_out <= x"20";
		when '0' & x"194204" => data_out <= x"02";
		when '0' & x"194402" => data_out <= x"04";
		when '1' & x"194420" => data_out <= x"18";
		when '1' & x"194620" => data_out <= x"18";
		when '1' & x"196004" => data_out <= x"18";
		when '0' & x"196204" => data_out <= x"02";
		when '1' & x"196204" => data_out <= x"18";
		when '0' & x"196402" => data_out <= x"04";
		when '1' & x"1a0104" => data_out <= x"02";
		when '1' & x"1a0401" => data_out <= x"02";
		when '1' & x"1a0420" => data_out <= x"18";
		when '1' & x"1a0520" => data_out <= x"18";
		when '0' & x"1a2040" => data_out <= x"20";
		when '1' & x"1a2004" => data_out <= x"18";
		when '0' & x"1a2140" => data_out <= x"20";
		when '1' & x"1a2104" => data_out <= x"1a";
		when '0' & x"1a2440" => data_out <= x"20";
		when '1' & x"1a2401" => data_out <= x"02";
		when '0' & x"1a2540" => data_out <= x"20";
		when '1' & x"1a4104" => data_out <= x"02";
		when '1' & x"1a4401" => data_out <= x"02";
		when '1' & x"1a4420" => data_out <= x"18";
		when '1' & x"1a4520" => data_out <= x"18";
		when '1' & x"1a6004" => data_out <= x"18";
		when '1' & x"1a6104" => data_out <= x"1a";
		when '1' & x"1a6401" => data_out <= x"02";
		when '1' & x"1b0420" => data_out <= x"18";
		when '0' & x"1b2040" => data_out <= x"20";
		when '1' & x"1b2004" => data_out <= x"18";
		when '0' & x"1b2440" => data_out <= x"20";
		when '1' & x"1b4420" => data_out <= x"18";
		when '1' & x"1b6004" => data_out <= x"18";
		when '0' & x"1c0201" => data_out <= x"02";
		when '1' & x"1c0220" => data_out <= x"1c";
		when '1' & x"1c0320" => data_out <= x"1c";
		when '0' & x"1c2040" => data_out <= x"20";
		when '1' & x"1c2002" => data_out <= x"1c";
		when '0' & x"1c2140" => data_out <= x"20";
		when '1' & x"1c2102" => data_out <= x"1c";
		when '0' & x"1c2201" => data_out <= x"02";
		when '0' & x"1c2240" => data_out <= x"20";
		when '0' & x"1c2340" => data_out <= x"20";
		when '0' & x"1c4201" => data_out <= x"02";
		when '1' & x"1c4220" => data_out <= x"1c";
		when '1' & x"1c4320" => data_out <= x"1c";
		when '1' & x"1c6002" => data_out <= x"1c";
		when '1' & x"1c6102" => data_out <= x"1c";
		when '0' & x"1c6201" => data_out <= x"02";
		when '1' & x"1d0220" => data_out <= x"1c";
		when '0' & x"1d2040" => data_out <= x"20";
		when '1' & x"1d2002" => data_out <= x"1c";
		when '0' & x"1d2240" => data_out <= x"20";
		when '1' & x"1d4220" => data_out <= x"1c";
		when '1' & x"1d6002" => data_out <= x"1c";
		when '1' & x"1e0120" => data_out <= x"1e";
		when '0' & x"1e2040" => data_out <= x"20";
		when '1' & x"1e2001" => data_out <= x"1e";
		when '0' & x"1e2140" => data_out <= x"20";
		when '1' & x"1e4120" => data_out <= x"1e";
		when '1' & x"1e6001" => data_out <= x"1e";
		when '0' & x"1f2040" => data_out <= x"20";
		when '0' & x"201008" => data_out <= x"10";
		when '1' & x"201040" => data_out <= x"20";
		when '0' & x"201108" => data_out <= x"10";
		when '1' & x"201140" => data_out <= x"20";
		when '0' & x"201208" => data_out <= x"10";
		when '1' & x"201240" => data_out <= x"20";
		when '0' & x"201308" => data_out <= x"10";
		when '1' & x"201340" => data_out <= x"20";
		when '0' & x"201408" => data_out <= x"10";
		when '1' & x"201440" => data_out <= x"20";
		when '0' & x"201508" => data_out <= x"10";
		when '1' & x"201540" => data_out <= x"20";
		when '0' & x"201608" => data_out <= x"10";
		when '1' & x"201640" => data_out <= x"20";
		when '0' & x"201708" => data_out <= x"10";
		when '1' & x"201740" => data_out <= x"20";
		when '0' & x"201804" => data_out <= x"18";
		when '1' & x"201840" => data_out <= x"20";
		when '0' & x"201904" => data_out <= x"18";
		when '1' & x"201940" => data_out <= x"20";
		when '0' & x"201a04" => data_out <= x"18";
		when '1' & x"201a40" => data_out <= x"20";
		when '0' & x"201b04" => data_out <= x"18";
		when '1' & x"201b40" => data_out <= x"20";
		when '0' & x"201c02" => data_out <= x"1c";
		when '1' & x"201c40" => data_out <= x"20";
		when '0' & x"201d02" => data_out <= x"1c";
		when '1' & x"201d40" => data_out <= x"20";
		when '0' & x"201e01" => data_out <= x"1e";
		when '1' & x"201e40" => data_out <= x"20";
		when '1' & x"201f40" => data_out <= x"20";
		when '1' & x"204010" => data_out <= x"20";
		when '1' & x"204110" => data_out <= x"20";
		when '1' & x"204210" => data_out <= x"20";
		when '1' & x"204310" => data_out <= x"20";
		when '1' & x"204410" => data_out <= x"20";
		when '1' & x"204510" => data_out <= x"20";
		when '1' & x"204610" => data_out <= x"20";
		when '1' & x"204710" => data_out <= x"20";
		when '1' & x"204810" => data_out <= x"20";
		when '1' & x"204910" => data_out <= x"20";
		when '1' & x"204a10" => data_out <= x"20";
		when '1' & x"204b10" => data_out <= x"20";
		when '1' & x"204c10" => data_out <= x"20";
		when '1' & x"204d10" => data_out <= x"20";
		when '1' & x"204e10" => data_out <= x"20";
		when '1' & x"204f10" => data_out <= x"20";
		when '0' & x"205008" => data_out <= x"10";
		when '0' & x"205108" => data_out <= x"10";
		when '0' & x"205208" => data_out <= x"10";
		when '0' & x"205308" => data_out <= x"10";
		when '0' & x"205408" => data_out <= x"10";
		when '0' & x"205508" => data_out <= x"10";
		when '0' & x"205608" => data_out <= x"10";
		when '0' & x"205708" => data_out <= x"10";
		when '0' & x"205804" => data_out <= x"18";
		when '0' & x"205904" => data_out <= x"18";
		when '0' & x"205a04" => data_out <= x"18";
		when '0' & x"205b04" => data_out <= x"18";
		when '0' & x"205c02" => data_out <= x"1c";
		when '0' & x"205d02" => data_out <= x"1c";
		when '0' & x"205e01" => data_out <= x"1e";
		when '0' & x"210204" => data_out <= x"02";
		when '0' & x"210608" => data_out <= x"06";
		when '0' & x"210a04" => data_out <= x"02";
		when '0' & x"210e10" => data_out <= x"0e";
		when '0' & x"211008" => data_out <= x"10";
		when '1' & x"211040" => data_out <= x"20";
		when '0' & x"211204" => data_out <= x"02";
		when '0' & x"211208" => data_out <= x"10";
		when '1' & x"211240" => data_out <= x"20";
		when '0' & x"211408" => data_out <= x"10";
		when '1' & x"211440" => data_out <= x"20";
		when '0' & x"211608" => data_out <= x"16";
		when '1' & x"211640" => data_out <= x"20";
		when '0' & x"211804" => data_out <= x"18";
		when '1' & x"211840" => data_out <= x"20";
		when '0' & x"211a04" => data_out <= x"1a";
		when '1' & x"211a40" => data_out <= x"20";
		when '0' & x"211c02" => data_out <= x"1c";
		when '1' & x"211c40" => data_out <= x"20";
		when '1' & x"211e40" => data_out <= x"20";
		when '1' & x"214010" => data_out <= x"20";
		when '0' & x"214204" => data_out <= x"02";
		when '1' & x"214210" => data_out <= x"20";
		when '1' & x"214410" => data_out <= x"20";
		when '0' & x"214608" => data_out <= x"06";
		when '1' & x"214610" => data_out <= x"20";
		when '1' & x"214810" => data_out <= x"20";
		when '0' & x"214a04" => data_out <= x"02";
		when '1' & x"214a10" => data_out <= x"20";
		when '1' & x"214c10" => data_out <= x"20";
		when '0' & x"214e10" => data_out <= x"0e";
		when '1' & x"214e10" => data_out <= x"20";
		when '0' & x"215008" => data_out <= x"10";
		when '0' & x"215204" => data_out <= x"02";
		when '0' & x"215208" => data_out <= x"10";
		when '0' & x"215408" => data_out <= x"10";
		when '0' & x"215608" => data_out <= x"16";
		when '0' & x"215804" => data_out <= x"18";
		when '0' & x"215a04" => data_out <= x"1a";
		when '0' & x"215c02" => data_out <= x"1c";
		when '1' & x"220104" => data_out <= x"02";
		when '0' & x"220408" => data_out <= x"04";
		when '1' & x"220401" => data_out <= x"02";
		when '0' & x"220508" => data_out <= x"04";
		when '1' & x"220904" => data_out <= x"02";
		when '0' & x"220c10" => data_out <= x"0c";
		when '1' & x"220c01" => data_out <= x"02";
		when '0' & x"220d10" => data_out <= x"0c";
		when '0' & x"221008" => data_out <= x"10";
		when '1' & x"221040" => data_out <= x"20";
		when '0' & x"221108" => data_out <= x"10";
		when '1' & x"221104" => data_out <= x"02";
		when '1' & x"221140" => data_out <= x"20";
		when '0' & x"221408" => data_out <= x"14";
		when '1' & x"221401" => data_out <= x"02";
		when '1' & x"221440" => data_out <= x"20";
		when '0' & x"221508" => data_out <= x"14";
		when '1' & x"221540" => data_out <= x"20";
		when '0' & x"221804" => data_out <= x"18";
		when '1' & x"221840" => data_out <= x"20";
		when '0' & x"221904" => data_out <= x"18";
		when '1' & x"221904" => data_out <= x"02";
		when '1' & x"221940" => data_out <= x"20";
		when '1' & x"221c01" => data_out <= x"02";
		when '1' & x"221c40" => data_out <= x"20";
		when '1' & x"221d40" => data_out <= x"20";
		when '1' & x"224010" => data_out <= x"20";
		when '1' & x"224104" => data_out <= x"02";
		when '1' & x"224110" => data_out <= x"20";
		when '0' & x"224408" => data_out <= x"04";
		when '1' & x"224401" => data_out <= x"02";
		when '1' & x"224410" => data_out <= x"20";
		when '0' & x"224508" => data_out <= x"04";
		when '1' & x"224510" => data_out <= x"20";
		when '1' & x"224810" => data_out <= x"20";
		when '1' & x"224904" => data_out <= x"02";
		when '1' & x"224910" => data_out <= x"20";
		when '0' & x"224c10" => data_out <= x"0c";
		when '1' & x"224c01" => data_out <= x"02";
		when '1' & x"224c10" => data_out <= x"20";
		when '0' & x"224d10" => data_out <= x"0c";
		when '1' & x"224d10" => data_out <= x"20";
		when '0' & x"225008" => data_out <= x"10";
		when '0' & x"225108" => data_out <= x"10";
		when '1' & x"225104" => data_out <= x"02";
		when '0' & x"225408" => data_out <= x"14";
		when '1' & x"225401" => data_out <= x"02";
		when '0' & x"225508" => data_out <= x"14";
		when '0' & x"225804" => data_out <= x"18";
		when '0' & x"225904" => data_out <= x"18";
		when '1' & x"225904" => data_out <= x"02";
		when '1' & x"225c01" => data_out <= x"02";
		when '0' & x"230408" => data_out <= x"04";
		when '0' & x"230c10" => data_out <= x"0c";
		when '0' & x"231008" => data_out <= x"10";
		when '1' & x"231040" => data_out <= x"20";
		when '0' & x"231408" => data_out <= x"14";
		when '1' & x"231440" => data_out <= x"20";
		when '0' & x"231804" => data_out <= x"18";
		when '1' & x"231840" => data_out <= x"20";
		when '1' & x"231c40" => data_out <= x"20";
		when '1' & x"234010" => data_out <= x"20";
		when '0' & x"234408" => data_out <= x"04";
		when '1' & x"234410" => data_out <= x"20";
		when '1' & x"234810" => data_out <= x"20";
		when '0' & x"234c10" => data_out <= x"0c";
		when '1' & x"234c10" => data_out <= x"20";
		when '0' & x"235008" => data_out <= x"10";
		when '0' & x"235408" => data_out <= x"14";
		when '0' & x"235804" => data_out <= x"18";
		when '0' & x"240201" => data_out <= x"02";
		when '1' & x"240208" => data_out <= x"04";
		when '1' & x"240308" => data_out <= x"04";
		when '0' & x"240810" => data_out <= x"08";
		when '1' & x"240802" => data_out <= x"04";
		when '0' & x"240910" => data_out <= x"08";
		when '1' & x"240902" => data_out <= x"04";
		when '0' & x"240a01" => data_out <= x"02";
		when '0' & x"240a10" => data_out <= x"08";
		when '0' & x"240b10" => data_out <= x"08";
		when '0' & x"241008" => data_out <= x"10";
		when '1' & x"241040" => data_out <= x"20";
		when '0' & x"241108" => data_out <= x"10";
		when '1' & x"241140" => data_out <= x"20";
		when '0' & x"241201" => data_out <= x"02";
		when '0' & x"241208" => data_out <= x"10";
		when '1' & x"241208" => data_out <= x"04";
		when '1' & x"241240" => data_out <= x"20";
		when '0' & x"241308" => data_out <= x"10";
		when '1' & x"241308" => data_out <= x"04";
		when '1' & x"241340" => data_out <= x"20";
		when '1' & x"241802" => data_out <= x"04";
		when '1' & x"241840" => data_out <= x"20";
		when '1' & x"241902" => data_out <= x"04";
		when '1' & x"241940" => data_out <= x"20";
		when '0' & x"241a01" => data_out <= x"02";
		when '1' & x"241a40" => data_out <= x"20";
		when '1' & x"241b40" => data_out <= x"20";
		when '1' & x"244010" => data_out <= x"20";
		when '1' & x"244110" => data_out <= x"20";
		when '0' & x"244201" => data_out <= x"02";
		when '1' & x"244208" => data_out <= x"04";
		when '1' & x"244210" => data_out <= x"20";
		when '1' & x"244308" => data_out <= x"04";
		when '1' & x"244310" => data_out <= x"20";
		when '0' & x"244810" => data_out <= x"08";
		when '1' & x"244802" => data_out <= x"04";
		when '1' & x"244810" => data_out <= x"20";
		when '0' & x"244910" => data_out <= x"08";
		when '1' & x"244902" => data_out <= x"04";
		when '1' & x"244910" => data_out <= x"20";
		when '0' & x"244a01" => data_out <= x"02";
		when '0' & x"244a10" => data_out <= x"08";
		when '1' & x"244a10" => data_out <= x"20";
		when '0' & x"244b10" => data_out <= x"08";
		when '1' & x"244b10" => data_out <= x"20";
		when '0' & x"245008" => data_out <= x"10";
		when '0' & x"245108" => data_out <= x"10";
		when '0' & x"245201" => data_out <= x"02";
		when '0' & x"245208" => data_out <= x"10";
		when '1' & x"245208" => data_out <= x"04";
		when '0' & x"245308" => data_out <= x"10";
		when '1' & x"245308" => data_out <= x"04";
		when '1' & x"245802" => data_out <= x"04";
		when '1' & x"245902" => data_out <= x"04";
		when '0' & x"245a01" => data_out <= x"02";
		when '1' & x"250208" => data_out <= x"04";
		when '0' & x"250810" => data_out <= x"08";
		when '1' & x"250802" => data_out <= x"04";
		when '0' & x"250a10" => data_out <= x"08";
		when '0' & x"251008" => data_out <= x"10";
		when '1' & x"251040" => data_out <= x"20";
		when '0' & x"251208" => data_out <= x"10";
		when '1' & x"251208" => data_out <= x"04";
		when '1' & x"251240" => data_out <= x"20";
		when '1' & x"251802" => data_out <= x"04";
		when '1' & x"251840" => data_out <= x"20";
		when '1' & x"251a40" => data_out <= x"20";
		when '1' & x"254010" => data_out <= x"20";
		when '1' & x"254208" => data_out <= x"04";
		when '1' & x"254210" => data_out <= x"20";
		when '0' & x"254810" => data_out <= x"08";
		when '1' & x"254802" => data_out <= x"04";
		when '1' & x"254810" => data_out <= x"20";
		when '0' & x"254a10" => data_out <= x"08";
		when '1' & x"254a10" => data_out <= x"20";
		when '0' & x"255008" => data_out <= x"10";
		when '0' & x"255208" => data_out <= x"10";
		when '1' & x"255208" => data_out <= x"04";
		when '1' & x"255802" => data_out <= x"04";
		when '1' & x"260108" => data_out <= x"06";
		when '0' & x"260810" => data_out <= x"08";
		when '1' & x"260801" => data_out <= x"06";
		when '0' & x"260910" => data_out <= x"08";
		when '0' & x"261008" => data_out <= x"10";
		when '1' & x"261040" => data_out <= x"20";
		when '0' & x"261108" => data_out <= x"10";
		when '1' & x"261108" => data_out <= x"06";
		when '1' & x"261140" => data_out <= x"20";
		when '1' & x"261801" => data_out <= x"06";
		when '1' & x"261840" => data_out <= x"20";
		when '1' & x"261940" => data_out <= x"20";
		when '1' & x"264010" => data_out <= x"20";
		when '1' & x"264108" => data_out <= x"06";
		when '1' & x"264110" => data_out <= x"20";
		when '0' & x"264810" => data_out <= x"08";
		when '1' & x"264801" => data_out <= x"06";
		when '1' & x"264810" => data_out <= x"20";
		when '0' & x"264910" => data_out <= x"08";
		when '1' & x"264910" => data_out <= x"20";
		when '0' & x"265008" => data_out <= x"10";
		when '0' & x"265108" => data_out <= x"10";
		when '1' & x"265108" => data_out <= x"06";
		when '1' & x"265801" => data_out <= x"06";
		when '0' & x"270810" => data_out <= x"08";
		when '0' & x"271008" => data_out <= x"10";
		when '1' & x"271040" => data_out <= x"20";
		when '1' & x"271840" => data_out <= x"20";
		when '1' & x"274010" => data_out <= x"20";
		when '0' & x"274810" => data_out <= x"08";
		when '1' & x"274810" => data_out <= x"20";
		when '0' & x"275008" => data_out <= x"10";
		when '0' & x"280402" => data_out <= x"04";
		when '1' & x"280410" => data_out <= x"08";
		when '0' & x"280502" => data_out <= x"04";
		when '1' & x"280510" => data_out <= x"08";
		when '0' & x"280601" => data_out <= x"06";
		when '1' & x"280610" => data_out <= x"08";
		when '1' & x"280710" => data_out <= x"08";
		when '1' & x"281004" => data_out <= x"08";
		when '1' & x"281040" => data_out <= x"20";
		when '1' & x"281104" => data_out <= x"08";
		when '1' & x"281140" => data_out <= x"20";
		when '1' & x"281204" => data_out <= x"08";
		when '1' & x"281240" => data_out <= x"20";
		when '1' & x"281304" => data_out <= x"08";
		when '1' & x"281340" => data_out <= x"20";
		when '0' & x"281402" => data_out <= x"04";
		when '1' & x"281440" => data_out <= x"20";
		when '0' & x"281502" => data_out <= x"04";
		when '1' & x"281540" => data_out <= x"20";
		when '0' & x"281601" => data_out <= x"06";
		when '1' & x"281640" => data_out <= x"20";
		when '1' & x"281740" => data_out <= x"20";
		when '1' & x"284010" => data_out <= x"20";
		when '1' & x"284110" => data_out <= x"20";
		when '1' & x"284210" => data_out <= x"20";
		when '1' & x"284310" => data_out <= x"20";
		when '0' & x"284402" => data_out <= x"04";
		when '1' & x"284410" => data_out <= x"28";
		when '0' & x"284502" => data_out <= x"04";
		when '1' & x"284510" => data_out <= x"28";
		when '0' & x"284601" => data_out <= x"06";
		when '1' & x"284610" => data_out <= x"28";
		when '1' & x"284710" => data_out <= x"28";
		when '1' & x"285004" => data_out <= x"08";
		when '1' & x"285104" => data_out <= x"08";
		when '1' & x"285204" => data_out <= x"08";
		when '1' & x"285304" => data_out <= x"08";
		when '0' & x"285402" => data_out <= x"04";
		when '0' & x"285502" => data_out <= x"04";
		when '0' & x"285601" => data_out <= x"06";
		when '0' & x"290204" => data_out <= x"02";
		when '0' & x"290402" => data_out <= x"04";
		when '1' & x"290410" => data_out <= x"08";
		when '1' & x"290610" => data_out <= x"08";
		when '1' & x"291004" => data_out <= x"08";
		when '1' & x"291040" => data_out <= x"20";
		when '0' & x"291204" => data_out <= x"02";
		when '1' & x"291204" => data_out <= x"08";
		when '1' & x"291240" => data_out <= x"20";
		when '0' & x"291402" => data_out <= x"04";
		when '1' & x"291440" => data_out <= x"20";
		when '1' & x"291640" => data_out <= x"20";
		when '1' & x"294010" => data_out <= x"20";
		when '0' & x"294204" => data_out <= x"02";
		when '1' & x"294210" => data_out <= x"20";
		when '0' & x"294402" => data_out <= x"04";
		when '1' & x"294410" => data_out <= x"28";
		when '1' & x"294610" => data_out <= x"28";
		when '1' & x"295004" => data_out <= x"08";
		when '0' & x"295204" => data_out <= x"02";
		when '1' & x"295204" => data_out <= x"08";
		when '0' & x"295402" => data_out <= x"04";
		when '1' & x"2a0104" => data_out <= x"02";
		when '1' & x"2a0401" => data_out <= x"02";
		when '1' & x"2a0410" => data_out <= x"08";
		when '1' & x"2a0510" => data_out <= x"08";
		when '1' & x"2a1004" => data_out <= x"08";
		when '1' & x"2a1040" => data_out <= x"20";
		when '1' & x"2a1104" => data_out <= x"0a";
		when '1' & x"2a1140" => data_out <= x"20";
		when '1' & x"2a1401" => data_out <= x"02";
		when '1' & x"2a1440" => data_out <= x"20";
		when '1' & x"2a1540" => data_out <= x"20";
		when '1' & x"2a4010" => data_out <= x"20";
		when '1' & x"2a4104" => data_out <= x"02";
		when '1' & x"2a4110" => data_out <= x"20";
		when '1' & x"2a4401" => data_out <= x"02";
		when '1' & x"2a4410" => data_out <= x"28";
		when '1' & x"2a4510" => data_out <= x"28";
		when '1' & x"2a5004" => data_out <= x"08";
		when '1' & x"2a5104" => data_out <= x"0a";
		when '1' & x"2a5401" => data_out <= x"02";
		when '1' & x"2b0410" => data_out <= x"08";
		when '1' & x"2b1004" => data_out <= x"08";
		when '1' & x"2b1040" => data_out <= x"20";
		when '1' & x"2b1440" => data_out <= x"20";
		when '1' & x"2b4010" => data_out <= x"20";
		when '1' & x"2b4410" => data_out <= x"28";
		when '1' & x"2b5004" => data_out <= x"08";
		when '0' & x"2c0201" => data_out <= x"02";
		when '1' & x"2c0210" => data_out <= x"0c";
		when '1' & x"2c0310" => data_out <= x"0c";
		when '1' & x"2c1002" => data_out <= x"0c";
		when '1' & x"2c1040" => data_out <= x"20";
		when '1' & x"2c1102" => data_out <= x"0c";
		when '1' & x"2c1140" => data_out <= x"20";
		when '0' & x"2c1201" => data_out <= x"02";
		when '1' & x"2c1240" => data_out <= x"20";
		when '1' & x"2c1340" => data_out <= x"20";
		when '1' & x"2c4010" => data_out <= x"20";
		when '1' & x"2c4110" => data_out <= x"20";
		when '0' & x"2c4201" => data_out <= x"02";
		when '1' & x"2c4210" => data_out <= x"2c";
		when '1' & x"2c4310" => data_out <= x"2c";
		when '1' & x"2c5002" => data_out <= x"0c";
		when '1' & x"2c5102" => data_out <= x"0c";
		when '0' & x"2c5201" => data_out <= x"02";
		when '1' & x"2d0210" => data_out <= x"0c";
		when '1' & x"2d1002" => data_out <= x"0c";
		when '1' & x"2d1040" => data_out <= x"20";
		when '1' & x"2d1240" => data_out <= x"20";
		when '1' & x"2d4010" => data_out <= x"20";
		when '1' & x"2d4210" => data_out <= x"2c";
		when '1' & x"2d5002" => data_out <= x"0c";
		when '1' & x"2e0110" => data_out <= x"0e";
		when '1' & x"2e1001" => data_out <= x"0e";
		when '1' & x"2e1040" => data_out <= x"20";
		when '1' & x"2e1140" => data_out <= x"20";
		when '1' & x"2e4010" => data_out <= x"20";
		when '1' & x"2e4110" => data_out <= x"2e";
		when '1' & x"2e5001" => data_out <= x"0e";
		when '1' & x"2f1040" => data_out <= x"20";
		when '1' & x"2f4010" => data_out <= x"20";
		when '0' & x"300804" => data_out <= x"08";
		when '1' & x"300840" => data_out <= x"30";
		when '0' & x"300904" => data_out <= x"08";
		when '1' & x"300940" => data_out <= x"30";
		when '0' & x"300a04" => data_out <= x"08";
		when '1' & x"300a40" => data_out <= x"30";
		when '0' & x"300b04" => data_out <= x"08";
		when '1' & x"300b40" => data_out <= x"30";
		when '0' & x"300c02" => data_out <= x"0c";
		when '1' & x"300c40" => data_out <= x"30";
		when '0' & x"300d02" => data_out <= x"0c";
		when '1' & x"300d40" => data_out <= x"30";
		when '0' & x"300e01" => data_out <= x"0e";
		when '1' & x"300e40" => data_out <= x"30";
		when '1' & x"300f40" => data_out <= x"30";
		when '1' & x"304008" => data_out <= x"30";
		when '1' & x"304108" => data_out <= x"30";
		when '1' & x"304208" => data_out <= x"30";
		when '1' & x"304308" => data_out <= x"30";
		when '1' & x"304408" => data_out <= x"30";
		when '1' & x"304508" => data_out <= x"30";
		when '1' & x"304608" => data_out <= x"30";
		when '1' & x"304708" => data_out <= x"30";
		when '0' & x"304804" => data_out <= x"08";
		when '0' & x"304904" => data_out <= x"08";
		when '0' & x"304a04" => data_out <= x"08";
		when '0' & x"304b04" => data_out <= x"08";
		when '0' & x"304c02" => data_out <= x"0c";
		when '0' & x"304d02" => data_out <= x"0c";
		when '0' & x"304e01" => data_out <= x"0e";
		when '0' & x"310204" => data_out <= x"02";
		when '0' & x"310608" => data_out <= x"06";
		when '0' & x"310804" => data_out <= x"08";
		when '1' & x"310840" => data_out <= x"30";
		when '0' & x"310a04" => data_out <= x"0a";
		when '1' & x"310a40" => data_out <= x"30";
		when '0' & x"310c02" => data_out <= x"0c";
		when '1' & x"310c40" => data_out <= x"30";
		when '1' & x"310e40" => data_out <= x"30";
		when '1' & x"314008" => data_out <= x"30";
		when '0' & x"314204" => data_out <= x"02";
		when '1' & x"314208" => data_out <= x"30";
		when '1' & x"314408" => data_out <= x"30";
		when '0' & x"314608" => data_out <= x"06";
		when '1' & x"314608" => data_out <= x"30";
		when '0' & x"314804" => data_out <= x"08";
		when '0' & x"314a04" => data_out <= x"0a";
		when '0' & x"314c02" => data_out <= x"0c";
		when '1' & x"320104" => data_out <= x"02";
		when '0' & x"320408" => data_out <= x"04";
		when '1' & x"320401" => data_out <= x"02";
		when '0' & x"320508" => data_out <= x"04";
		when '0' & x"320804" => data_out <= x"08";
		when '1' & x"320840" => data_out <= x"30";
		when '0' & x"320904" => data_out <= x"08";
		when '1' & x"320904" => data_out <= x"02";
		when '1' & x"320940" => data_out <= x"30";
		when '1' & x"320c01" => data_out <= x"02";
		when '1' & x"320c40" => data_out <= x"30";
		when '1' & x"320d40" => data_out <= x"30";
		when '1' & x"324008" => data_out <= x"30";
		when '1' & x"324104" => data_out <= x"02";
		when '1' & x"324108" => data_out <= x"30";
		when '0' & x"324408" => data_out <= x"04";
		when '1' & x"324401" => data_out <= x"02";
		when '1' & x"324408" => data_out <= x"30";
		when '0' & x"324508" => data_out <= x"04";
		when '1' & x"324508" => data_out <= x"30";
		when '0' & x"324804" => data_out <= x"08";
		when '0' & x"324904" => data_out <= x"08";
		when '1' & x"324904" => data_out <= x"02";
		when '1' & x"324c01" => data_out <= x"02";
		when '0' & x"330408" => data_out <= x"04";
		when '0' & x"330804" => data_out <= x"08";
		when '1' & x"330840" => data_out <= x"30";
		when '1' & x"330c40" => data_out <= x"30";
		when '1' & x"334008" => data_out <= x"30";
		when '0' & x"334408" => data_out <= x"04";
		when '1' & x"334408" => data_out <= x"30";
		when '0' & x"334804" => data_out <= x"08";
		when '0' & x"340201" => data_out <= x"02";
		when '1' & x"340208" => data_out <= x"04";
		when '1' & x"340308" => data_out <= x"04";
		when '1' & x"340802" => data_out <= x"04";
		when '1' & x"340840" => data_out <= x"30";
		when '1' & x"340902" => data_out <= x"04";
		when '1' & x"340940" => data_out <= x"30";
		when '0' & x"340a01" => data_out <= x"02";
		when '1' & x"340a40" => data_out <= x"30";
		when '1' & x"340b40" => data_out <= x"30";
		when '1' & x"344008" => data_out <= x"30";
		when '1' & x"344108" => data_out <= x"30";
		when '0' & x"344201" => data_out <= x"02";
		when '1' & x"344208" => data_out <= x"34";
		when '1' & x"344308" => data_out <= x"34";
		when '1' & x"344802" => data_out <= x"04";
		when '1' & x"344902" => data_out <= x"04";
		when '0' & x"344a01" => data_out <= x"02";
		when '1' & x"350208" => data_out <= x"04";
		when '1' & x"350802" => data_out <= x"04";
		when '1' & x"350840" => data_out <= x"30";
		when '1' & x"350a40" => data_out <= x"30";
		when '1' & x"354008" => data_out <= x"30";
		when '1' & x"354208" => data_out <= x"34";
		when '1' & x"354802" => data_out <= x"04";
		when '1' & x"360108" => data_out <= x"06";
		when '1' & x"360801" => data_out <= x"06";
		when '1' & x"360840" => data_out <= x"30";
		when '1' & x"360940" => data_out <= x"30";
		when '1' & x"364008" => data_out <= x"30";
		when '1' & x"364108" => data_out <= x"36";
		when '1' & x"364801" => data_out <= x"06";
		when '1' & x"370840" => data_out <= x"30";
		when '1' & x"374008" => data_out <= x"30";
		when '0' & x"380402" => data_out <= x"04";
		when '1' & x"380440" => data_out <= x"38";
		when '0' & x"380502" => data_out <= x"04";
		when '1' & x"380540" => data_out <= x"38";
		when '0' & x"380601" => data_out <= x"06";
		when '1' & x"380640" => data_out <= x"38";
		when '1' & x"380740" => data_out <= x"38";
		when '1' & x"384004" => data_out <= x"38";
		when '1' & x"384104" => data_out <= x"38";
		when '1' & x"384204" => data_out <= x"38";
		when '1' & x"384304" => data_out <= x"38";
		when '0' & x"384402" => data_out <= x"04";
		when '0' & x"384502" => data_out <= x"04";
		when '0' & x"384601" => data_out <= x"06";
		when '0' & x"390204" => data_out <= x"02";
		when '0' & x"390402" => data_out <= x"04";
		when '1' & x"390440" => data_out <= x"38";
		when '1' & x"390640" => data_out <= x"38";
		when '1' & x"394004" => data_out <= x"38";
		when '0' & x"394204" => data_out <= x"02";
		when '1' & x"394204" => data_out <= x"38";
		when '0' & x"394402" => data_out <= x"04";
		when '1' & x"3a0104" => data_out <= x"02";
		when '1' & x"3a0401" => data_out <= x"02";
		when '1' & x"3a0440" => data_out <= x"38";
		when '1' & x"3a0540" => data_out <= x"38";
		when '1' & x"3a4004" => data_out <= x"38";
		when '1' & x"3a4104" => data_out <= x"3a";
		when '1' & x"3a4401" => data_out <= x"02";
		when '1' & x"3b0440" => data_out <= x"38";
		when '1' & x"3b4004" => data_out <= x"38";
		when '0' & x"3c0201" => data_out <= x"02";
		when '1' & x"3c0240" => data_out <= x"3c";
		when '1' & x"3c0340" => data_out <= x"3c";
		when '1' & x"3c4002" => data_out <= x"3c";
		when '1' & x"3c4102" => data_out <= x"3c";
		when '0' & x"3c4201" => data_out <= x"02";
		when '1' & x"3d0240" => data_out <= x"3c";
		when '1' & x"3d4002" => data_out <= x"3c";
		when '1' & x"3e0140" => data_out <= x"3e";
		when '1' & x"3e4001" => data_out <= x"3e";
		when '0' & x"402010" => data_out <= x"20";
		when '0' & x"402110" => data_out <= x"20";
		when '0' & x"402210" => data_out <= x"20";
		when '0' & x"402310" => data_out <= x"20";
		when '0' & x"402410" => data_out <= x"20";
		when '0' & x"402510" => data_out <= x"20";
		when '0' & x"402610" => data_out <= x"20";
		when '0' & x"402710" => data_out <= x"20";
		when '0' & x"402810" => data_out <= x"20";
		when '0' & x"402910" => data_out <= x"20";
		when '0' & x"402a10" => data_out <= x"20";
		when '0' & x"402b10" => data_out <= x"20";
		when '0' & x"402c10" => data_out <= x"20";
		when '0' & x"402d10" => data_out <= x"20";
		when '0' & x"402e10" => data_out <= x"20";
		when '0' & x"402f10" => data_out <= x"20";
		when '0' & x"403008" => data_out <= x"30";
		when '0' & x"403108" => data_out <= x"30";
		when '0' & x"403208" => data_out <= x"30";
		when '0' & x"403308" => data_out <= x"30";
		when '0' & x"403408" => data_out <= x"30";
		when '0' & x"403508" => data_out <= x"30";
		when '0' & x"403608" => data_out <= x"30";
		when '0' & x"403708" => data_out <= x"30";
		when '0' & x"403804" => data_out <= x"38";
		when '0' & x"403904" => data_out <= x"38";
		when '0' & x"403a04" => data_out <= x"38";
		when '0' & x"403b04" => data_out <= x"38";
		when '0' & x"403c02" => data_out <= x"3c";
		when '0' & x"403d02" => data_out <= x"3c";
		when '0' & x"403e01" => data_out <= x"3e";
		when '0' & x"410204" => data_out <= x"02";
		when '0' & x"410608" => data_out <= x"06";
		when '0' & x"410a04" => data_out <= x"02";
		when '0' & x"410e10" => data_out <= x"0e";
		when '0' & x"411204" => data_out <= x"02";
		when '0' & x"411608" => data_out <= x"06";
		when '0' & x"411a04" => data_out <= x"02";
		when '0' & x"411e20" => data_out <= x"1e";
		when '0' & x"412010" => data_out <= x"20";
		when '0' & x"412204" => data_out <= x"02";
		when '0' & x"412210" => data_out <= x"20";
		when '0' & x"412410" => data_out <= x"20";
		when '0' & x"412608" => data_out <= x"06";
		when '0' & x"412610" => data_out <= x"20";
		when '0' & x"412810" => data_out <= x"20";
		when '0' & x"412a04" => data_out <= x"02";
		when '0' & x"412a10" => data_out <= x"20";
		when '0' & x"412c10" => data_out <= x"20";
		when '0' & x"412e10" => data_out <= x"2e";
		when '0' & x"413008" => data_out <= x"30";
		when '0' & x"413204" => data_out <= x"02";
		when '0' & x"413208" => data_out <= x"30";
		when '0' & x"413408" => data_out <= x"30";
		when '0' & x"413608" => data_out <= x"36";
		when '0' & x"413804" => data_out <= x"38";
		when '0' & x"413a04" => data_out <= x"3a";
		when '0' & x"413c02" => data_out <= x"3c";
		when '1' & x"420104" => data_out <= x"02";
		when '0' & x"420408" => data_out <= x"04";
		when '1' & x"420401" => data_out <= x"02";
		when '0' & x"420508" => data_out <= x"04";
		when '1' & x"420904" => data_out <= x"02";
		when '0' & x"420c10" => data_out <= x"0c";
		when '1' & x"420c01" => data_out <= x"02";
		when '0' & x"420d10" => data_out <= x"0c";
		when '1' & x"421104" => data_out <= x"02";
		when '0' & x"421408" => data_out <= x"04";
		when '1' & x"421401" => data_out <= x"02";
		when '0' & x"421508" => data_out <= x"04";
		when '1' & x"421904" => data_out <= x"02";
		when '0' & x"421c20" => data_out <= x"1c";
		when '1' & x"421c01" => data_out <= x"02";
		when '0' & x"421d20" => data_out <= x"1c";
		when '0' & x"422010" => data_out <= x"20";
		when '0' & x"422110" => data_out <= x"20";
		when '1' & x"422104" => data_out <= x"02";
		when '0' & x"422408" => data_out <= x"04";
		when '0' & x"422410" => data_out <= x"20";
		when '1' & x"422401" => data_out <= x"02";
		when '0' & x"422508" => data_out <= x"04";
		when '0' & x"422510" => data_out <= x"20";
		when '0' & x"422810" => data_out <= x"20";
		when '0' & x"422910" => data_out <= x"20";
		when '1' & x"422904" => data_out <= x"02";
		when '0' & x"422c10" => data_out <= x"2c";
		when '1' & x"422c01" => data_out <= x"02";
		when '0' & x"422d10" => data_out <= x"2c";
		when '0' & x"423008" => data_out <= x"30";
		when '0' & x"423108" => data_out <= x"30";
		when '1' & x"423104" => data_out <= x"02";
		when '0' & x"423408" => data_out <= x"34";
		when '1' & x"423401" => data_out <= x"02";
		when '0' & x"423508" => data_out <= x"34";
		when '0' & x"423804" => data_out <= x"38";
		when '0' & x"423904" => data_out <= x"38";
		when '1' & x"423904" => data_out <= x"02";
		when '1' & x"423c01" => data_out <= x"02";
		when '0' & x"430408" => data_out <= x"04";
		when '0' & x"430c10" => data_out <= x"0c";
		when '0' & x"431408" => data_out <= x"04";
		when '0' & x"431c20" => data_out <= x"1c";
		when '0' & x"432010" => data_out <= x"20";
		when '0' & x"432408" => data_out <= x"04";
		when '0' & x"432410" => data_out <= x"20";
		when '0' & x"432810" => data_out <= x"20";
		when '0' & x"432c10" => data_out <= x"2c";
		when '0' & x"433008" => data_out <= x"30";
		when '0' & x"433408" => data_out <= x"34";
		when '0' & x"433804" => data_out <= x"38";
		when '0' & x"440201" => data_out <= x"02";
		when '1' & x"440208" => data_out <= x"04";
		when '1' & x"440308" => data_out <= x"04";
		when '0' & x"440810" => data_out <= x"08";
		when '1' & x"440802" => data_out <= x"04";
		when '0' & x"440910" => data_out <= x"08";
		when '1' & x"440902" => data_out <= x"04";
		when '0' & x"440a01" => data_out <= x"02";
		when '0' & x"440a10" => data_out <= x"08";
		when '0' & x"440b10" => data_out <= x"08";
		when '0' & x"441201" => data_out <= x"02";
		when '1' & x"441208" => data_out <= x"04";
		when '1' & x"441308" => data_out <= x"04";
		when '0' & x"441820" => data_out <= x"18";
		when '1' & x"441802" => data_out <= x"04";
		when '0' & x"441920" => data_out <= x"18";
		when '1' & x"441902" => data_out <= x"04";
		when '0' & x"441a01" => data_out <= x"02";
		when '0' & x"441a20" => data_out <= x"18";
		when '0' & x"441b20" => data_out <= x"18";
		when '0' & x"442010" => data_out <= x"20";
		when '0' & x"442110" => data_out <= x"20";
		when '0' & x"442201" => data_out <= x"02";
		when '0' & x"442210" => data_out <= x"20";
		when '1' & x"442208" => data_out <= x"04";
		when '0' & x"442310" => data_out <= x"20";
		when '1' & x"442308" => data_out <= x"04";
		when '0' & x"442810" => data_out <= x"28";
		when '1' & x"442802" => data_out <= x"04";
		when '0' & x"442910" => data_out <= x"28";
		when '1' & x"442902" => data_out <= x"04";
		when '0' & x"442a01" => data_out <= x"02";
		when '0' & x"442a10" => data_out <= x"28";
		when '0' & x"442b10" => data_out <= x"28";
		when '0' & x"443008" => data_out <= x"30";
		when '0' & x"443108" => data_out <= x"30";
		when '0' & x"443201" => data_out <= x"02";
		when '0' & x"443208" => data_out <= x"30";
		when '1' & x"443208" => data_out <= x"04";
		when '0' & x"443308" => data_out <= x"30";
		when '1' & x"443308" => data_out <= x"04";
		when '1' & x"443802" => data_out <= x"04";
		when '1' & x"443902" => data_out <= x"04";
		when '0' & x"443a01" => data_out <= x"02";
		when '1' & x"450208" => data_out <= x"04";
		when '0' & x"450810" => data_out <= x"08";
		when '1' & x"450802" => data_out <= x"04";
		when '0' & x"450a10" => data_out <= x"08";
		when '1' & x"451208" => data_out <= x"04";
		when '0' & x"451820" => data_out <= x"18";
		when '1' & x"451802" => data_out <= x"04";
		when '0' & x"451a20" => data_out <= x"18";
		when '0' & x"452010" => data_out <= x"20";
		when '0' & x"452210" => data_out <= x"20";
		when '1' & x"452208" => data_out <= x"04";
		when '0' & x"452810" => data_out <= x"28";
		when '1' & x"452802" => data_out <= x"04";
		when '0' & x"452a10" => data_out <= x"28";
		when '0' & x"453008" => data_out <= x"30";
		when '0' & x"453208" => data_out <= x"30";
		when '1' & x"453208" => data_out <= x"04";
		when '1' & x"453802" => data_out <= x"04";
		when '1' & x"460108" => data_out <= x"06";
		when '0' & x"460810" => data_out <= x"08";
		when '1' & x"460801" => data_out <= x"06";
		when '0' & x"460910" => data_out <= x"08";
		when '1' & x"461108" => data_out <= x"06";
		when '0' & x"461820" => data_out <= x"18";
		when '1' & x"461801" => data_out <= x"06";
		when '0' & x"461920" => data_out <= x"18";
		when '0' & x"462010" => data_out <= x"20";
		when '0' & x"462110" => data_out <= x"20";
		when '1' & x"462108" => data_out <= x"06";
		when '0' & x"462810" => data_out <= x"28";
		when '1' & x"462801" => data_out <= x"06";
		when '0' & x"462910" => data_out <= x"28";
		when '0' & x"463008" => data_out <= x"30";
		when '0' & x"463108" => data_out <= x"30";
		when '1' & x"463108" => data_out <= x"06";
		when '1' & x"463801" => data_out <= x"06";
		when '0' & x"470810" => data_out <= x"08";
		when '0' & x"471820" => data_out <= x"18";
		when '0' & x"472010" => data_out <= x"20";
		when '0' & x"472810" => data_out <= x"28";
		when '0' & x"473008" => data_out <= x"30";
		when '0' & x"480402" => data_out <= x"04";
		when '1' & x"480410" => data_out <= x"08";
		when '0' & x"480502" => data_out <= x"04";
		when '1' & x"480510" => data_out <= x"08";
		when '0' & x"480601" => data_out <= x"06";
		when '1' & x"480610" => data_out <= x"08";
		when '1' & x"480710" => data_out <= x"08";
		when '0' & x"481020" => data_out <= x"10";
		when '1' & x"481004" => data_out <= x"08";
		when '0' & x"481120" => data_out <= x"10";
		when '1' & x"481104" => data_out <= x"08";
		when '0' & x"481220" => data_out <= x"10";
		when '1' & x"481204" => data_out <= x"08";
		when '0' & x"481320" => data_out <= x"10";
		when '1' & x"481304" => data_out <= x"08";
		when '0' & x"481402" => data_out <= x"04";
		when '0' & x"481420" => data_out <= x"10";
		when '0' & x"481502" => data_out <= x"04";
		when '0' & x"481520" => data_out <= x"10";
		when '0' & x"481601" => data_out <= x"06";
		when '0' & x"481620" => data_out <= x"10";
		when '0' & x"481720" => data_out <= x"10";
		when '0' & x"482010" => data_out <= x"20";
		when '0' & x"482110" => data_out <= x"20";
		when '0' & x"482210" => data_out <= x"20";
		when '0' & x"482310" => data_out <= x"20";
		when '0' & x"482402" => data_out <= x"04";
		when '0' & x"482410" => data_out <= x"20";
		when '1' & x"482410" => data_out <= x"08";
		when '0' & x"482502" => data_out <= x"04";
		when '0' & x"482510" => data_out <= x"20";
		when '1' & x"482510" => data_out <= x"08";
		when '0' & x"482601" => data_out <= x"06";
		when '0' & x"482610" => data_out <= x"20";
		when '1' & x"482610" => data_out <= x"08";
		when '0' & x"482710" => data_out <= x"20";
		when '1' & x"482710" => data_out <= x"08";
		when '1' & x"483004" => data_out <= x"08";
		when '1' & x"483104" => data_out <= x"08";
		when '1' & x"483204" => data_out <= x"08";
		when '1' & x"483304" => data_out <= x"08";
		when '0' & x"483402" => data_out <= x"04";
		when '0' & x"483502" => data_out <= x"04";
		when '0' & x"483601" => data_out <= x"06";
		when '0' & x"490204" => data_out <= x"02";
		when '0' & x"490402" => data_out <= x"04";
		when '1' & x"490410" => data_out <= x"08";
		when '1' & x"490610" => data_out <= x"08";
		when '0' & x"491020" => data_out <= x"10";
		when '1' & x"491004" => data_out <= x"08";
		when '0' & x"491204" => data_out <= x"02";
		when '0' & x"491220" => data_out <= x"10";
		when '1' & x"491204" => data_out <= x"08";
		when '0' & x"491402" => data_out <= x"04";
		when '0' & x"491420" => data_out <= x"10";
		when '0' & x"491620" => data_out <= x"10";
		when '0' & x"492010" => data_out <= x"20";
		when '0' & x"492204" => data_out <= x"02";
		when '0' & x"492210" => data_out <= x"20";
		when '0' & x"492402" => data_out <= x"04";
		when '0' & x"492410" => data_out <= x"20";
		when '1' & x"492410" => data_out <= x"08";
		when '0' & x"492610" => data_out <= x"20";
		when '1' & x"492610" => data_out <= x"08";
		when '1' & x"493004" => data_out <= x"08";
		when '0' & x"493204" => data_out <= x"02";
		when '1' & x"493204" => data_out <= x"08";
		when '0' & x"493402" => data_out <= x"04";
		when '1' & x"4a0104" => data_out <= x"02";
		when '1' & x"4a0401" => data_out <= x"02";
		when '1' & x"4a0410" => data_out <= x"08";
		when '1' & x"4a0510" => data_out <= x"08";
		when '0' & x"4a1020" => data_out <= x"10";
		when '1' & x"4a1004" => data_out <= x"08";
		when '0' & x"4a1120" => data_out <= x"10";
		when '1' & x"4a1104" => data_out <= x"0a";
		when '0' & x"4a1420" => data_out <= x"10";
		when '1' & x"4a1401" => data_out <= x"02";
		when '0' & x"4a1520" => data_out <= x"10";
		when '0' & x"4a2010" => data_out <= x"20";
		when '0' & x"4a2110" => data_out <= x"20";
		when '1' & x"4a2104" => data_out <= x"02";
		when '0' & x"4a2410" => data_out <= x"20";
		when '1' & x"4a2401" => data_out <= x"02";
		when '1' & x"4a2410" => data_out <= x"08";
		when '0' & x"4a2510" => data_out <= x"20";
		when '1' & x"4a2510" => data_out <= x"08";
		when '1' & x"4a3004" => data_out <= x"08";
		when '1' & x"4a3104" => data_out <= x"0a";
		when '1' & x"4a3401" => data_out <= x"02";
		when '1' & x"4b0410" => data_out <= x"08";
		when '0' & x"4b1020" => data_out <= x"10";
		when '1' & x"4b1004" => data_out <= x"08";
		when '0' & x"4b1420" => data_out <= x"10";
		when '0' & x"4b2010" => data_out <= x"20";
		when '0' & x"4b2410" => data_out <= x"20";
		when '1' & x"4b2410" => data_out <= x"08";
		when '1' & x"4b3004" => data_out <= x"08";
		when '0' & x"4c0201" => data_out <= x"02";
		when '1' & x"4c0210" => data_out <= x"0c";
		when '1' & x"4c0310" => data_out <= x"0c";
		when '0' & x"4c1020" => data_out <= x"10";
		when '1' & x"4c1002" => data_out <= x"0c";
		when '0' & x"4c1120" => data_out <= x"10";
		when '1' & x"4c1102" => data_out <= x"0c";
		when '0' & x"4c1201" => data_out <= x"02";
		when '0' & x"4c1220" => data_out <= x"10";
		when '0' & x"4c1320" => data_out <= x"10";
		when '0' & x"4c2010" => data_out <= x"20";
		when '0' & x"4c2110" => data_out <= x"20";
		when '0' & x"4c2201" => data_out <= x"02";
		when '0' & x"4c2210" => data_out <= x"20";
		when '1' & x"4c2210" => data_out <= x"0c";
		when '0' & x"4c2310" => data_out <= x"20";
		when '1' & x"4c2310" => data_out <= x"0c";
		when '1' & x"4c3002" => data_out <= x"0c";
		when '1' & x"4c3102" => data_out <= x"0c";
		when '0' & x"4c3201" => data_out <= x"02";
		when '1' & x"4d0210" => data_out <= x"0c";
		when '0' & x"4d1020" => data_out <= x"10";
		when '1' & x"4d1002" => data_out <= x"0c";
		when '0' & x"4d1220" => data_out <= x"10";
		when '0' & x"4d2010" => data_out <= x"20";
		when '0' & x"4d2210" => data_out <= x"20";
		when '1' & x"4d2210" => data_out <= x"0c";
		when '1' & x"4d3002" => data_out <= x"0c";
		when '1' & x"4e0110" => data_out <= x"0e";
		when '0' & x"4e1020" => data_out <= x"10";
		when '1' & x"4e1001" => data_out <= x"0e";
		when '0' & x"4e1120" => data_out <= x"10";
		when '0' & x"4e2010" => data_out <= x"20";
		when '0' & x"4e2110" => data_out <= x"20";
		when '1' & x"4e2110" => data_out <= x"0e";
		when '1' & x"4e3001" => data_out <= x"0e";
		when '0' & x"4f1020" => data_out <= x"10";
		when '0' & x"4f2010" => data_out <= x"20";
		when '0' & x"500804" => data_out <= x"08";
		when '1' & x"500820" => data_out <= x"10";
		when '0' & x"500904" => data_out <= x"08";
		when '1' & x"500920" => data_out <= x"10";
		when '0' & x"500a04" => data_out <= x"08";
		when '1' & x"500a20" => data_out <= x"10";
		when '0' & x"500b04" => data_out <= x"08";
		when '1' & x"500b20" => data_out <= x"10";
		when '0' & x"500c02" => data_out <= x"0c";
		when '1' & x"500c20" => data_out <= x"10";
		when '0' & x"500d02" => data_out <= x"0c";
		when '1' & x"500d20" => data_out <= x"10";
		when '0' & x"500e01" => data_out <= x"0e";
		when '1' & x"500e20" => data_out <= x"10";
		when '1' & x"500f20" => data_out <= x"10";
		when '1' & x"502008" => data_out <= x"10";
		when '1' & x"502108" => data_out <= x"10";
		when '1' & x"502208" => data_out <= x"10";
		when '1' & x"502308" => data_out <= x"10";
		when '1' & x"502408" => data_out <= x"10";
		when '1' & x"502508" => data_out <= x"10";
		when '1' & x"502608" => data_out <= x"10";
		when '1' & x"502708" => data_out <= x"10";
		when '0' & x"502804" => data_out <= x"08";
		when '0' & x"502904" => data_out <= x"08";
		when '0' & x"502a04" => data_out <= x"08";
		when '0' & x"502b04" => data_out <= x"08";
		when '0' & x"502c02" => data_out <= x"0c";
		when '0' & x"502d02" => data_out <= x"0c";
		when '0' & x"502e01" => data_out <= x"0e";
		when '0' & x"510204" => data_out <= x"02";
		when '0' & x"510608" => data_out <= x"06";
		when '0' & x"510804" => data_out <= x"08";
		when '1' & x"510820" => data_out <= x"10";
		when '0' & x"510a04" => data_out <= x"0a";
		when '1' & x"510a20" => data_out <= x"10";
		when '0' & x"510c02" => data_out <= x"0c";
		when '1' & x"510c20" => data_out <= x"10";
		when '1' & x"510e20" => data_out <= x"10";
		when '1' & x"512008" => data_out <= x"10";
		when '0' & x"512204" => data_out <= x"02";
		when '1' & x"512208" => data_out <= x"10";
		when '1' & x"512408" => data_out <= x"10";
		when '0' & x"512608" => data_out <= x"06";
		when '1' & x"512608" => data_out <= x"10";
		when '0' & x"512804" => data_out <= x"08";
		when '0' & x"512a04" => data_out <= x"0a";
		when '0' & x"512c02" => data_out <= x"0c";
		when '1' & x"520104" => data_out <= x"02";
		when '0' & x"520408" => data_out <= x"04";
		when '1' & x"520401" => data_out <= x"02";
		when '0' & x"520508" => data_out <= x"04";
		when '0' & x"520804" => data_out <= x"08";
		when '1' & x"520820" => data_out <= x"10";
		when '0' & x"520904" => data_out <= x"08";
		when '1' & x"520904" => data_out <= x"02";
		when '1' & x"520920" => data_out <= x"10";
		when '1' & x"520c01" => data_out <= x"02";
		when '1' & x"520c20" => data_out <= x"10";
		when '1' & x"520d20" => data_out <= x"10";
		when '1' & x"522008" => data_out <= x"10";
		when '1' & x"522104" => data_out <= x"02";
		when '1' & x"522108" => data_out <= x"10";
		when '0' & x"522408" => data_out <= x"04";
		when '1' & x"522401" => data_out <= x"02";
		when '1' & x"522408" => data_out <= x"10";
		when '0' & x"522508" => data_out <= x"04";
		when '1' & x"522508" => data_out <= x"10";
		when '0' & x"522804" => data_out <= x"08";
		when '0' & x"522904" => data_out <= x"08";
		when '1' & x"522904" => data_out <= x"02";
		when '1' & x"522c01" => data_out <= x"02";
		when '0' & x"530408" => data_out <= x"04";
		when '0' & x"530804" => data_out <= x"08";
		when '1' & x"530820" => data_out <= x"10";
		when '1' & x"530c20" => data_out <= x"10";
		when '1' & x"532008" => data_out <= x"10";
		when '0' & x"532408" => data_out <= x"04";
		when '1' & x"532408" => data_out <= x"10";
		when '0' & x"532804" => data_out <= x"08";
		when '0' & x"540201" => data_out <= x"02";
		when '1' & x"540208" => data_out <= x"04";
		when '1' & x"540308" => data_out <= x"04";
		when '1' & x"540802" => data_out <= x"04";
		when '1' & x"540820" => data_out <= x"10";
		when '1' & x"540902" => data_out <= x"04";
		when '1' & x"540920" => data_out <= x"10";
		when '0' & x"540a01" => data_out <= x"02";
		when '1' & x"540a20" => data_out <= x"10";
		when '1' & x"540b20" => data_out <= x"10";
		when '1' & x"542008" => data_out <= x"10";
		when '1' & x"542108" => data_out <= x"10";
		when '0' & x"542201" => data_out <= x"02";
		when '1' & x"542208" => data_out <= x"14";
		when '1' & x"542308" => data_out <= x"14";
		when '1' & x"542802" => data_out <= x"04";
		when '1' & x"542902" => data_out <= x"04";
		when '0' & x"542a01" => data_out <= x"02";
		when '1' & x"550208" => data_out <= x"04";
		when '1' & x"550802" => data_out <= x"04";
		when '1' & x"550820" => data_out <= x"10";
		when '1' & x"550a20" => data_out <= x"10";
		when '1' & x"552008" => data_out <= x"10";
		when '1' & x"552208" => data_out <= x"14";
		when '1' & x"552802" => data_out <= x"04";
		when '1' & x"560108" => data_out <= x"06";
		when '1' & x"560801" => data_out <= x"06";
		when '1' & x"560820" => data_out <= x"10";
		when '1' & x"560920" => data_out <= x"10";
		when '1' & x"562008" => data_out <= x"10";
		when '1' & x"562108" => data_out <= x"16";
		when '1' & x"562801" => data_out <= x"06";
		when '1' & x"570820" => data_out <= x"10";
		when '1' & x"572008" => data_out <= x"10";
		when '0' & x"580402" => data_out <= x"04";
		when '1' & x"580420" => data_out <= x"18";
		when '0' & x"580502" => data_out <= x"04";
		when '1' & x"580520" => data_out <= x"18";
		when '0' & x"580601" => data_out <= x"06";
		when '1' & x"580620" => data_out <= x"18";
		when '1' & x"580720" => data_out <= x"18";
		when '1' & x"582004" => data_out <= x"18";
		when '1' & x"582104" => data_out <= x"18";
		when '1' & x"582204" => data_out <= x"18";
		when '1' & x"582304" => data_out <= x"18";
		when '0' & x"582402" => data_out <= x"04";
		when '0' & x"582502" => data_out <= x"04";
		when '0' & x"582601" => data_out <= x"06";
		when '0' & x"590204" => data_out <= x"02";
		when '0' & x"590402" => data_out <= x"04";
		when '1' & x"590420" => data_out <= x"18";
		when '1' & x"590620" => data_out <= x"18";
		when '1' & x"592004" => data_out <= x"18";
		when '0' & x"592204" => data_out <= x"02";
		when '1' & x"592204" => data_out <= x"18";
		when '0' & x"592402" => data_out <= x"04";
		when '1' & x"5a0104" => data_out <= x"02";
		when '1' & x"5a0401" => data_out <= x"02";
		when '1' & x"5a0420" => data_out <= x"18";
		when '1' & x"5a0520" => data_out <= x"18";
		when '1' & x"5a2004" => data_out <= x"18";
		when '1' & x"5a2104" => data_out <= x"1a";
		when '1' & x"5a2401" => data_out <= x"02";
		when '1' & x"5b0420" => data_out <= x"18";
		when '1' & x"5b2004" => data_out <= x"18";
		when '0' & x"5c0201" => data_out <= x"02";
		when '1' & x"5c0220" => data_out <= x"1c";
		when '1' & x"5c0320" => data_out <= x"1c";
		when '1' & x"5c2002" => data_out <= x"1c";
		when '1' & x"5c2102" => data_out <= x"1c";
		when '0' & x"5c2201" => data_out <= x"02";
		when '1' & x"5d0220" => data_out <= x"1c";
		when '1' & x"5d2002" => data_out <= x"1c";
		when '1' & x"5e0120" => data_out <= x"1e";
		when '1' & x"5e2001" => data_out <= x"1e";
		when '0' & x"601008" => data_out <= x"10";
		when '0' & x"601108" => data_out <= x"10";
		when '0' & x"601208" => data_out <= x"10";
		when '0' & x"601308" => data_out <= x"10";
		when '0' & x"601408" => data_out <= x"10";
		when '0' & x"601508" => data_out <= x"10";
		when '0' & x"601608" => data_out <= x"10";
		when '0' & x"601708" => data_out <= x"10";
		when '0' & x"601804" => data_out <= x"18";
		when '0' & x"601904" => data_out <= x"18";
		when '0' & x"601a04" => data_out <= x"18";
		when '0' & x"601b04" => data_out <= x"18";
		when '0' & x"601c02" => data_out <= x"1c";
		when '0' & x"601d02" => data_out <= x"1c";
		when '0' & x"601e01" => data_out <= x"1e";
		when '0' & x"610204" => data_out <= x"02";
		when '0' & x"610608" => data_out <= x"06";
		when '0' & x"610a04" => data_out <= x"02";
		when '0' & x"610e10" => data_out <= x"0e";
		when '0' & x"611008" => data_out <= x"10";
		when '0' & x"611204" => data_out <= x"02";
		when '0' & x"611208" => data_out <= x"10";
		when '0' & x"611408" => data_out <= x"10";
		when '0' & x"611608" => data_out <= x"16";
		when '0' & x"611804" => data_out <= x"18";
		when '0' & x"611a04" => data_out <= x"1a";
		when '0' & x"611c02" => data_out <= x"1c";
		when '1' & x"620104" => data_out <= x"02";
		when '0' & x"620408" => data_out <= x"04";
		when '1' & x"620401" => data_out <= x"02";
		when '0' & x"620508" => data_out <= x"04";
		when '1' & x"620904" => data_out <= x"02";
		when '0' & x"620c10" => data_out <= x"0c";
		when '1' & x"620c01" => data_out <= x"02";
		when '0' & x"620d10" => data_out <= x"0c";
		when '0' & x"621008" => data_out <= x"10";
		when '0' & x"621108" => data_out <= x"10";
		when '1' & x"621104" => data_out <= x"02";
		when '0' & x"621408" => data_out <= x"14";
		when '1' & x"621401" => data_out <= x"02";
		when '0' & x"621508" => data_out <= x"14";
		when '0' & x"621804" => data_out <= x"18";
		when '0' & x"621904" => data_out <= x"18";
		when '1' & x"621904" => data_out <= x"02";
		when '1' & x"621c01" => data_out <= x"02";
		when '0' & x"630408" => data_out <= x"04";
		when '0' & x"630c10" => data_out <= x"0c";
		when '0' & x"631008" => data_out <= x"10";
		when '0' & x"631408" => data_out <= x"14";
		when '0' & x"631804" => data_out <= x"18";
		when '0' & x"640201" => data_out <= x"02";
		when '1' & x"640208" => data_out <= x"04";
		when '1' & x"640308" => data_out <= x"04";
		when '0' & x"640810" => data_out <= x"08";
		when '1' & x"640802" => data_out <= x"04";
		when '0' & x"640910" => data_out <= x"08";
		when '1' & x"640902" => data_out <= x"04";
		when '0' & x"640a01" => data_out <= x"02";
		when '0' & x"640a10" => data_out <= x"08";
		when '0' & x"640b10" => data_out <= x"08";
		when '0' & x"641008" => data_out <= x"10";
		when '0' & x"641108" => data_out <= x"10";
		when '0' & x"641201" => data_out <= x"02";
		when '0' & x"641208" => data_out <= x"10";
		when '1' & x"641208" => data_out <= x"04";
		when '0' & x"641308" => data_out <= x"10";
		when '1' & x"641308" => data_out <= x"04";
		when '1' & x"641802" => data_out <= x"04";
		when '1' & x"641902" => data_out <= x"04";
		when '0' & x"641a01" => data_out <= x"02";
		when '1' & x"650208" => data_out <= x"04";
		when '0' & x"650810" => data_out <= x"08";
		when '1' & x"650802" => data_out <= x"04";
		when '0' & x"650a10" => data_out <= x"08";
		when '0' & x"651008" => data_out <= x"10";
		when '0' & x"651208" => data_out <= x"10";
		when '1' & x"651208" => data_out <= x"04";
		when '1' & x"651802" => data_out <= x"04";
		when '1' & x"660108" => data_out <= x"06";
		when '0' & x"660810" => data_out <= x"08";
		when '1' & x"660801" => data_out <= x"06";
		when '0' & x"660910" => data_out <= x"08";
		when '0' & x"661008" => data_out <= x"10";
		when '0' & x"661108" => data_out <= x"10";
		when '1' & x"661108" => data_out <= x"06";
		when '1' & x"661801" => data_out <= x"06";
		when '0' & x"670810" => data_out <= x"08";
		when '0' & x"671008" => data_out <= x"10";
		when '0' & x"680402" => data_out <= x"04";
		when '1' & x"680410" => data_out <= x"08";
		when '0' & x"680502" => data_out <= x"04";
		when '1' & x"680510" => data_out <= x"08";
		when '0' & x"680601" => data_out <= x"06";
		when '1' & x"680610" => data_out <= x"08";
		when '1' & x"680710" => data_out <= x"08";
		when '1' & x"681004" => data_out <= x"08";
		when '1' & x"681104" => data_out <= x"08";
		when '1' & x"681204" => data_out <= x"08";
		when '1' & x"681304" => data_out <= x"08";
		when '0' & x"681402" => data_out <= x"04";
		when '0' & x"681502" => data_out <= x"04";
		when '0' & x"681601" => data_out <= x"06";
		when '0' & x"690204" => data_out <= x"02";
		when '0' & x"690402" => data_out <= x"04";
		when '1' & x"690410" => data_out <= x"08";
		when '1' & x"690610" => data_out <= x"08";
		when '1' & x"691004" => data_out <= x"08";
		when '0' & x"691204" => data_out <= x"02";
		when '1' & x"691204" => data_out <= x"08";
		when '0' & x"691402" => data_out <= x"04";
		when '1' & x"6a0104" => data_out <= x"02";
		when '1' & x"6a0401" => data_out <= x"02";
		when '1' & x"6a0410" => data_out <= x"08";
		when '1' & x"6a0510" => data_out <= x"08";
		when '1' & x"6a1004" => data_out <= x"08";
		when '1' & x"6a1104" => data_out <= x"0a";
		when '1' & x"6a1401" => data_out <= x"02";
		when '1' & x"6b0410" => data_out <= x"08";
		when '1' & x"6b1004" => data_out <= x"08";
		when '0' & x"6c0201" => data_out <= x"02";
		when '1' & x"6c0210" => data_out <= x"0c";
		when '1' & x"6c0310" => data_out <= x"0c";
		when '1' & x"6c1002" => data_out <= x"0c";
		when '1' & x"6c1102" => data_out <= x"0c";
		when '0' & x"6c1201" => data_out <= x"02";
		when '1' & x"6d0210" => data_out <= x"0c";
		when '1' & x"6d1002" => data_out <= x"0c";
		when '1' & x"6e0110" => data_out <= x"0e";
		when '1' & x"6e1001" => data_out <= x"0e";
		when '0' & x"700804" => data_out <= x"08";
		when '0' & x"700904" => data_out <= x"08";
		when '0' & x"700a04" => data_out <= x"08";
		when '0' & x"700b04" => data_out <= x"08";
		when '0' & x"700c02" => data_out <= x"0c";
		when '0' & x"700d02" => data_out <= x"0c";
		when '0' & x"700e01" => data_out <= x"0e";
		when '0' & x"710204" => data_out <= x"02";
		when '0' & x"710608" => data_out <= x"06";
		when '0' & x"710804" => data_out <= x"08";
		when '0' & x"710a04" => data_out <= x"0a";
		when '0' & x"710c02" => data_out <= x"0c";
		when '1' & x"720104" => data_out <= x"02";
		when '0' & x"720408" => data_out <= x"04";
		when '1' & x"720401" => data_out <= x"02";
		when '0' & x"720508" => data_out <= x"04";
		when '0' & x"720804" => data_out <= x"08";
		when '0' & x"720904" => data_out <= x"08";
		when '1' & x"720904" => data_out <= x"02";
		when '1' & x"720c01" => data_out <= x"02";
		when '0' & x"730408" => data_out <= x"04";
		when '0' & x"730804" => data_out <= x"08";
		when '0' & x"740201" => data_out <= x"02";
		when '1' & x"740208" => data_out <= x"04";
		when '1' & x"740308" => data_out <= x"04";
		when '1' & x"740802" => data_out <= x"04";
		when '1' & x"740902" => data_out <= x"04";
		when '0' & x"740a01" => data_out <= x"02";
		when '1' & x"750208" => data_out <= x"04";
		when '1' & x"750802" => data_out <= x"04";
		when '1' & x"760108" => data_out <= x"06";
		when '1' & x"760801" => data_out <= x"06";
		when '0' & x"780402" => data_out <= x"04";
		when '0' & x"780502" => data_out <= x"04";
		when '0' & x"780601" => data_out <= x"06";
		when '0' & x"790204" => data_out <= x"02";
		when '0' & x"790402" => data_out <= x"04";
		when '1' & x"7a0104" => data_out <= x"02";
		when '1' & x"7a0401" => data_out <= x"02";
		when '0' & x"7c0201" => data_out <= x"02";
		when others => data_out <= x"00";
	end case;
end process;

end RTL;

